详解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 相关文章推荐
python中nan与inf转为特定数字方法示例
May 11 Python
简单谈谈python中的语句和语法
Aug 10 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
Oct 17 Python
python http基本验证方法
Dec 26 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
Python中一些深不见底的“坑”
Jun 12 Python
Python for循环搭配else常见问题解决
Feb 11 Python
Python对象的属性访问过程详解
Mar 05 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Java Spring项目国际化(i18n)详细方法与实例
Mar 20 Python
python suds访问webservice服务实现
Jun 26 Python
python实现图片转换成素描和漫画格式
Aug 19 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
python实现学生管理系统
2018/01/11 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Django工程的分层结构详解
2019/07/18 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
通过Python实现一个简单的html页面
2020/05/16 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
五一家具促销方案
2014/01/10 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
股权转让意向书
2014/04/01 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python