详解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生成随机MAC地址
Mar 10 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Python绘制频率分布直方图的示例
Jul 08 Python
Python函数参数定义及传递方式解析
Jun 10 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
pycharm 实现调试窗口恢复
Feb 05 Python
Python实现Hash算法
Mar 18 Python
python中redis包操作数据库的教程
Apr 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
新版PHP将向Java靠拢
2006/10/09 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
python进程与线程小结实例分析
2018/11/11 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python绘制条形图方法代码详解
2017/12/19 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python关于变量名的基础知识点
2020/03/03 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
企业军训感言
2014/02/08 职场文书
安全承诺书范文
2014/03/26 职场文书
租赁协议书范本
2014/04/22 职场文书
户籍证明模板
2014/09/28 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
教师个人师德工作总结2015
2015/05/12 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS