python实现证件照换底功能

 更新时间:2019年08月20日 08:39:12   作者:yanni0616  
这篇文章主要为大家详细介绍了python实现证件照换底功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见了这个,参考: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入门之基础语法详解

    这篇文章主要介绍了Python入门之基础语法详解,文中有非常详细的代码示例,对正在学习python的小伙伴们有很大的帮助哟,需要的朋友可以参考下
    2021-05-05
  • Python语音识别API实现文字转语音的几种方法

    Python语音识别API实现文字转语音的几种方法

    本文主要介绍了Python语音识别API实现文字转语音的几种方法,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Python基于pygame模块播放MP3的方法示例

    Python基于pygame模块播放MP3的方法示例

    这篇文章主要介绍了Python基于pygame模块播放MP3的方法,结合实例形式简单分析了Python使用pygame模块播放MP3音频文件的实现方法以及相关函数的功能说明,需要的朋友可以参考下
    2017-09-09
  • Python实现动态循环输出文字功能

    Python实现动态循环输出文字功能

    这篇文章主要介绍了Python实现动态循环输出文字功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python验证码识别处理实例

    Python验证码识别处理实例

    这篇文章主要介绍了Python验证码识别处理实例,实现过程讲解很详细,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 八大排序算法的Python实现

    八大排序算法的Python实现

    这篇文章主要介绍了八大排序算法的Python实现,对八大排序算法进行详细描述和代码实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • python数据清洗系列之字符串处理详解

    python数据清洗系列之字符串处理详解

    这篇文章主要介绍了python数据清洗之字符串处理的相关资料,需要的朋友可以参考下
    2017-02-02
  • Deepsort + Yolo 实现行人检测和轨迹追踪的方法

    Deepsort + Yolo 实现行人检测和轨迹追踪的方法

    这篇文章主要介绍了Deepsort + Yolo 实现行人检测和轨迹追踪,本项目通过采用深度学习方法实现YOLO算法行人检测和deepsort算法对人员定位的和轨迹跟踪,需要的朋友可以参考下
    2021-09-09
  • Python之tkinter组合框Combobox用法及说明

    Python之tkinter组合框Combobox用法及说明

    这篇文章主要介绍了Python之tkinter组合框Combobox用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 使用Python判断质数(素数)的简单方法讲解

    使用Python判断质数(素数)的简单方法讲解

    这篇文章主要介绍了使用Python判断质数(素数)的简单方法讲解,经常被用来做科学计算的Python处理这种小问题当然手到擒来^_-需要的朋友可以参考下
    2016-05-05

最新评论