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 相关文章推荐
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
python retrying模块的使用方法详解
Sep 25 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
Python列表倒序输出及其效率详解
Mar 04 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
如何用Python徒手写线性回归
Jan 25 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
python使用BeautifulSoup 解析HTML
Apr 24 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遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
js变换显示图片的实例
2013/04/16 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
Python图像读写方法对比
2020/11/16 Python
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
招聘单位介绍信
2014/01/14 职场文书
领班岗位职责范文
2014/02/06 职场文书
单位在职证明书
2014/09/11 职场文书
企业贷款委托书格式
2014/09/12 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
九年级数学教学反思
2016/02/17 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript