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计数排序和基数排序算法实例
Apr 25 Python
python中pygame模块用法实例
Oct 09 Python
使用Python编写Linux系统守护进程实例
Feb 03 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
为什么说python适合写爬虫
Jun 11 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
Django框架中视图的用法
Jun 10 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
PHP时间和日期函数详解
2015/05/08 PHP
php 实现进制相互转换
2016/04/07 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
ES6学习教程之块级作用域详解
2017/10/09 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
python实现名片管理系统
2018/11/29 Python
Python Pillow Image Invert
2019/01/22 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
护理专业毕业生自荐信
2014/06/15 职场文书
公证委托书格式
2014/09/13 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
手写实现JS中的new
2021/11/07 Javascript
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android