详解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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
Django和Flask框架优缺点对比
Oct 24 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
详解python内置模块urllib
Sep 09 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
Python 数据可视化之Matplotlib详解
Nov 02 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
php页面函数设置超时限制的方法
2014/12/01 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
python实现对一个完整url进行分割的方法
2015/04/29 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
通过实例了解python property属性
2019/11/01 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
django在开发中取消外键约束的实现
2020/05/20 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
医院院务公开实施方案
2014/05/03 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
2014年测量员工作总结
2014/12/12 职场文书
单位考核聘任报告
2015/03/02 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android