python实现证件照换底功能


Posted in Python onAugust 20, 2019

本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见了这个,参考:python opencv实现证件照换底功能

本人基于此做了一些改进,便于自己运行和调试,还加了中值滤波,本人觉得效果还不错~

代码:

import cv2
import numpy as np
 
def cvtBackground(path,color):
 """
 功能:给证件照更换背景色(常用背景色红、白、蓝)
 输入参数:path:照片路径
 color:背景色 <格式[B,G,R]>
 """
 im=cv2.imread(path)
 im_hsv=cv2.cvtColor(im,cv2.COLOR_BGR2HSV) #BGR和HSV的转换使用 cv2.COLOR_BGR2HSV
 #aim=np.uint8([[im[0,0,:]]])
 #hsv_aim=cv2.cvtColor(aim,cv2.COLOR_BGR2HSV)
 mask=cv2.inRange(im_hsv,np.array([im_hsv[0,0,0]-5,100,100]),np.array([im_hsv[0,0,0]+5,255,255])) #利用cv2.inRange函数设阈值,去除背景部分
 mask1=mask      #在lower_red~upper_red之间的值变成255
 img_median = cv2.medianBlur(mask, 5) #自己加,中值滤波,去除一些边缘噪点
 mask = img_median
 mask_inv=cv2.bitwise_not(mask) 
 img1=cv2.bitwise_and(im,im,mask=mask_inv) #将人物抠出
 bg=im.copy()
 rows,cols,channels=im.shape
 bg[:rows,:cols,:]=color
 img2=cv2.bitwise_and(bg,bg,mask=mask) #将背景底板抠出
 img=cv2.add(img1,img2)
 image={'im':im,'im_hsv':im_hsv,'mask':mask1,'img':img,'img_median':img_median}
 cv2.startWindowThread() #加了这个后在图片窗口按Esc就可以关闭图片窗口
 for key in image:
 cv2.namedWindow(key)
 cv2.imshow(key,image[key])
 cv2.waitKey(0)
 cv2.destroyAllWindows()
 return img
#test
if __name__=='__main__':
 img=cvtBackground('3.jpg',[0,0,180])

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

Python 相关文章推荐
在 Django/Flask 开发服务器上使用 HTTPS
Jul 03 Python
python根据出生日期返回年龄的方法
Mar 26 Python
Python实现单词翻译功能
Jun 06 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
python:接口间数据传递与调用方法
Dec 17 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
Django上线部署之IIS的配置方法
Aug 22 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
python自动化调用百度api解决验证码
Apr 13 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 Python
pytorch多进程加速及代码优化方法
Aug 19 #Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 #Python
python opencv实现证件照换底功能
Aug 19 #Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 #Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 #Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 #Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 #Python
You might like
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
PHP的中问验证码
2006/11/25 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
Python中IPYTHON入门实例
2015/05/11 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
高中生的学习总结自我鉴定
2013/10/26 职场文书
毕业生个人求职信范例分享
2013/12/17 职场文书
村班子对照检查材料
2014/08/18 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
争先创优心得体会
2014/09/12 职场文书
爱心捐书倡议书
2015/04/27 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书