本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见了这个,参考:python opencv实现证件照换底功能

本人基于此做了一些改进,便于自己运行和调试,还加了中值滤波,本人觉得效果还不错~

代码:

import cv2

import numpy as np

def cvtBackground(path,color):

"""

功能:给证件照更换背景色(常用背景色红、白、蓝)

输入参数:path:照片路径

color:背景色

"""

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])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2019-08-17

python证件照_python实现证件照换底功能相关推荐

  1. python opencv pdf脚本之家_python opencv实现证件照换底功能

    本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下 思路:先转到HSV空间,利用颜色提取背景制作掩模版mask,然后通过按位操作提取人像和制作新背景, ...

  2. php-opencv身份证识别,python opencv实现证件照换底功能

    本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下 思路:先转到HSV空间,利用颜色提取背景制作掩模版mask,然后通过按位操作提取人像和制作新背景, ...

  3. 【微信小程序】照片换底(免费拍摄多种类型证件照、剪裁、换底、压缩)

    [微信小程序]照片换底(免费拍摄多种类型证件照.剪裁.换底.压缩) 前言 微信搜索小程序:快速照片换底.利用AI抠图制作各种类型的证件照,关键是免费. 应用截图 注意事项 纯色背景,比如蓝布或者白墙 ...

  4. python 实现证件照换底

    本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见了这个,参考:https://blog.csdn.net/w ...

  5. matlab实现证件照换底+美肤的功能

    f=imread('boy2.png');subplot(1,3,1);imshow(f);title('原图'); a=f(:,:,3); %确定图像的大小 [m,n]=size(a);  for ...

  6. PaddleHub创意项目-制作证件照(抠图换底美颜)

    PaddleHub创意项目-制作证件照(抠图换底美颜) 经过三个星期的百度架构师手把手带你零基础实践深度学习,对paddle有了一定了解,现在利用PaddleHub实践一个对图像进行抠图换底加美颜的小 ...

  7. 我的小程序新增了证件照换底色功能

    点击上方蓝字"优派编程"选择"加为星标",第一时间关注原创干货 原文地址 http://wp.fang1688.cn/study/646.html 我的小程序新 ...

  8. 利用Photoshop对证件照换底且抠出头发丝

    如何利用Photoshop对证件照换底,且抠出头发丝 关键在于利用好通道选取 详情参见: https://www.2014g.cn/hangye/1734.html

  9. OpenCV-python 证件照换底-利用函数inRange及滑动条creatTrackbar分割

    OpenCV-python 证件照换底 利用函数inRange及滑动条creatTrackbar分割 证件照换底HSV参考图片总是设定不准inRange的值.做一个利用滑条滑动直接看效果的吧 inRa ...

最新文章

  1. [20160311]ora-01732.txt
  2. 二十个CSS经典技巧
  3. php删除文件指令,php – Symfony cache:清除命令更改文件夹所有者
  4. android view 转Bitmap 生成截图
  5. 26岁的她,成为深圳大学史上最年轻正教授!
  6. div自动滚动_从手机滚动丢帧问题,学习浏览器合成与渲染层优化
  7. 信息提示无法建立数据连接服务器,FileZilla 链接FTP服务器无法建立数据连接: ECONNREFUSED...
  8. X3D 参数代码(一)
  9. ie 传递给系统调用的数据区域太小。_RFID银行资产管理系统,智能,简便,易操作...
  10. 如何查看内核参数的说明文档
  11. android-常用布局-三
  12. Kali下TheFatRat工具的安装教程
  13. SQL SERVER触发器(附有实例)
  14. 原生js完成的五子棋人机大战
  15. layui框架弹出窗口,点击确定跳转指定地址
  16. 完全卸载SQL server 2005的方法
  17. Sass学习(二)--混合器与继承
  18. 八段数码管数字显示实验c语言,八段数码管显示实验.doc
  19. Linux tcp拥塞控制
  20. Entrust 将不再签发超过13个月有效期的SSL证书

热门文章

  1. 戴尔笔记本一键重装win7系统教程
  2. linux基础知识复习学习笔记
  3. Scratch精通之侦测的使用
  4. STM32U5,意法半导体新打造的超低功耗MCU旗舰版
  5. STM32F4—Flash读写
  6. 【云原生】什么是 CI/CD ?| 软件交付中常见的问题
  7. 百度地图汽车物流数智化应用方案,推进整车运输行业全链条数字化发展
  8. SpringBoot集成Minio搭建自己的分布式文件服务器(Minio集成篇)
  9. html网页底部代码实例,HTML网页头部代码实例详解H 这个首页的html5网站
  10. JSR303校验使用