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


Posted in Python onMarch 22, 2019

现在网上出现了很多在线换底色的网页版工具是这么做的呢?其实用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://3water.com/softs/574953.html

opencv下载 :https://3water.com/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给照片换底色(蓝底换红底)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
对python中的xlsxwriter库简单分析
May 04 Python
python numpy格式化打印的实例
May 14 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
Python之循环结构
Jan 15 Python
Pycharm连接远程服务器并实现远程调试的实现
Aug 02 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
详解python-图像处理(映射变换)
Mar 22 #Python
python中如何使用分步式进程计算详解
Mar 22 #Python
浅谈Python基础—判断和循环
Mar 22 #Python
浅谈python常用程序算法
Mar 22 #Python
python实现移位加密和解密
Mar 22 #Python
python实现可逆简单的加密算法
Mar 22 #Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 #Python
You might like
更改localhost为其他名字的方法
2014/02/10 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python生成器generator用法实例分析
2015/06/04 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
python分布式编程实现过程解析
2019/11/08 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
python爬虫要用到的库总结
2020/07/28 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
医院护士的求职信范文
2013/12/26 职场文书
办公室主任职责范本
2014/03/07 职场文书
岳麓书院导游词
2015/02/03 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
如何用PHP实现多线程编程
2021/05/26 PHP
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
python 中的jieba分词库
2021/11/23 Python
python使用shell脚本创建kafka连接器
2022/04/29 Python