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翻译软件实现代码(使用google api完成)
Nov 26 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
python实现最长公共子序列
May 22 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
Python Socket编程详解
Apr 25 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
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
pandas 选择某几列的方法
2018/07/03 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
对Django外键关系的描述
2019/07/26 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
int和Integer有什么区别
2013/05/25 面试题
大学毕业生的自我鉴定
2013/11/30 职场文书
日语求职信范文
2013/12/17 职场文书
行政专员岗位职责
2014/01/02 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
公益活动邀请函
2014/02/05 职场文书
开门红主持词
2014/04/02 职场文书
休假证明书
2015/06/24 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技