详解Python给照片换底色(蓝底换红底)

作者:TANKING 时间:2023-02-03 02:07:45 

现在网上出现了很多在线换底色的网页版工具是这么做的呢?其实用Python就可以实现。

环境要求

Python3
numpy函数库
opencv库

安装

下载适应版本的numpy函数库,我电脑是WIN10 64位,安装的函数库是
numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl

下载适应版本的opencv库,我电脑是WIN10 64位,安装的库是
opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

安装以上两个库,WIN+R->CMD->CD到当前两个库所在的文件夹,输入以下命令逐步安装


pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
pip install opencv_python-3.3.1-cp36-cp36m-win_amd64.whl

以上两个文件下载地址:

numpy下载:https://www.jb51.net/softs/574953.html

opencv下载 :https://www.jb51.net/softs/333884.html

详解Python给照片换底色(蓝底换红底)

代码

在当前文件夹新建opencv.py,拷贝以下代码


import cv2
import numpy as np

img=cv2.imread('timg.jpg')
#缩放
rows,cols,channels = img.shape
img=cv2.resize(img,None,fx=0.5,fy=0.5)
rows,cols,channels = img.shape
cv2.imshow('img',img)

#转换hsv
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
lower_blue=np.array([90,70,70])
upper_blue=np.array([110,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
cv2.imshow('Mask', mask)

#腐蚀膨胀
erode=cv2.erode(mask,None,iterations=1)
cv2.imshow('erode',erode)
dilate=cv2.dilate(erode,None,iterations=1)
cv2.imshow('dilate',dilate)

#遍历替换
for i in range(rows):
 for j in range(cols):
   if dilate[i,j]==255:
     img[i,j]=(0,0,255)#此处替换颜色,为BGR通道
cv2.imshow('res',img)

cv2.waitKey(0)
cv2.destroyAllWindows()

说明

第四行timg.jpg是原图片路径
lower_blue=np.array([90,70,70])里面三个数值可以控制好处理出来的效果和噪点

WIN+R->CMD->CD到opencv.py文件夹,运行

DEMO

详解Python给照片换底色(蓝底换红底)

动图演示

详解Python给照片换底色(蓝底换红底)

来源:https://segmentfault.com/a/1190000018599038

标签:Python,照片,换底色
0
投稿

猜你喜欢

  • 总结用Pdb库调试Python的方式及常用的命令

    2023-03-11 02:09:53
  • Web 标准设计实践:Google 的首页

    2008-10-12 12:14:00
  • Python面向对象程序设计类的多态用法详解

    2021-05-28 20:21:29
  • mysql 判断是否为子集的方法步骤

    2024-01-26 03:53:11
  • numpy:np.newaxis 实现将行向量转换成列向量

    2023-07-13 03:14:39
  • python实现水仙花数实例讲解

    2021-04-05 11:38:05
  • python实现控制台打印的方法

    2021-12-18 12:21:04
  • Python装饰器基础概念与用法详解

    2021-07-07 12:32:46
  • c#操作sqlserver数据库的简单示例

    2024-01-28 11:25:23
  • 跟老齐学Python之重回函数

    2022-06-29 16:55:43
  • tensorboard实现同时显示训练曲线和测试曲线

    2023-05-18 04:55:34
  • Python的几个高级语法概念浅析(lambda表达式闭包装饰器)

    2021-08-07 14:18:45
  • Python while true实现爬虫定时任务

    2021-02-10 13:35:30
  • 利用Matlab绘制各类特殊图形的实例代码

    2021-01-05 21:10:31
  • Python 文件操作技巧(File operation) 实例代码分析

    2021-03-12 00:02:50
  • 微信小程序开发之获取用户手机号码(php接口解密)

    2023-11-15 03:34:59
  • Python Web框架Flask中使用七牛云存储实例

    2022-11-25 17:20:27
  • numpy拼接矩阵的实现

    2021-02-09 06:35:07
  • pycharm部署django项目到云服务器的详细流程

    2021-05-27 23:32:19
  • go中string、int、float相互转换的实现示例

    2024-04-28 09:14:19
  • asp之家 网络编程 m.aspxhome.com