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 logging类库使用例子
Nov 22 Python
python使用clear方法清除字典内全部数据实例
Jul 11 Python
TensorFlow实现卷积神经网络
May 24 Python
python实现石头剪刀布小游戏
Jan 20 Python
对Python实现累加函数的方法详解
Jan 23 Python
Python timer定时器两种常用方法解析
Jan 20 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 Python
基于python的matplotlib制作双Y轴图
Apr 20 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
php中的ini配置原理详解
2014/10/14 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
JQuery live函数
2010/12/24 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
python在不同层级目录import模块的方法
2016/01/31 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
利用Python计算KS的实例详解
2020/03/03 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
群胜软件Java笔试题
2012/09/29 面试题
数据库笔试题
2013/05/09 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
市场营销计划书
2015/01/17 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
涨价通知怎么写
2015/04/23 职场文书
欠条范文
2015/07/03 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
java实现web实时消息推送的七种方案
2022/07/23 Java/Android