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实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
python如何读写json数据
Mar 21 Python
python3.6的venv模块使用详解
Aug 01 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
Python中的 enum 模块源码详析
Jan 09 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
简单了解python反射机制的一些知识
Jul 13 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
python绘制汉诺塔
Mar 01 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php生成RSS订阅的方法
2015/02/13 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
js微信分享API
2020/10/11 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
react配置antd按需加载的使用
2019/02/11 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
python魔法方法-属性访问控制详解
2016/07/25 Python
Django Highcharts制作图表
2016/08/27 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
心理健康心得体会
2014/01/02 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
百日安全活动总结
2014/05/04 职场文书
化工专业求职信
2014/07/01 职场文书
先进学校事迹材料
2014/12/30 职场文书
小班上学期个人总结
2015/02/12 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS
解决mysql的int型主键自增问题
2021/07/15 MySQL
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android