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 相关文章推荐
python多线程编程方式分析示例详解
Dec 06 Python
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
python访问系统环境变量的方法
Apr 29 Python
Python 自动化表单提交实例代码
Jun 08 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
Python数据集切分实例
Dec 08 Python
浅析python内置模块collections
Nov 15 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
python3.8下载及安装步骤详解
Jan 15 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
新手常见Python错误及异常解决处理方案
Jun 18 Python
Scrapy爬虫文件批量运行的实现
Sep 30 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
Python如何将字符串转换为日期
2020/07/31 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
人力资源部经理岗位职责规定
2014/02/23 职场文书
葬礼司仪主持词
2014/03/31 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
财产公证书
2014/04/10 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
2014年财政局工作总结
2014/12/09 职场文书
本溪关门山导游词
2015/02/09 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
TV动画《间谍过家家》公开PV
2022/03/20 日漫