python opencv实现证件照换底功能


Posted in Python onAugust 19, 2019

本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下

思路:先转到HSV空间,利用颜色提取背景制作掩模版mask,然后通过按位操作提取人像和制作新背景,最后叠加背景和人像得到换底后照片

代码

#-*-coding:utf-8-*-
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)
  aim=np.uint8([[im[0,0,:]]])
  hsv_aim=cv2.cvtColor(aim,cv2.COLOR_BGR2HSV)
  mask=cv2.inRange(im_hsv,np.array([hsv_aim[0,0,0]-5,100,100]),np.array([hsv_aim[0,0,0]+5,255,255]))
  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':mask,'img':img}
  for key in image:
    cv2.namedWindow(key)
    cv2.imshow(key,image[key])
  cv2.waitKey(0)
  return img
#test
if __name__=='__main__':
  img=cvtBackground('./photo.jpg',[0,0,180])

结果

python opencv实现证件照换底功能

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

Python 相关文章推荐
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python实现把xml或xsl转换为html格式
Apr 08 Python
python字典基本操作实例分析
Jul 11 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
Python 定义只读属性的实现方式
Mar 05 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
python 三种方法提取pdf中的图片
Feb 07 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
Apr 12 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
pytorch使用指定GPU训练的实例
Aug 19 #Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 #Python
pytorch 更改预训练模型网络结构的方法
Aug 19 #Python
You might like
PHP如何得到当前页和上一页的地址?
2006/11/27 PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
javascript编写简易计算器
2017/05/06 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
python多线程http压力测试脚本
2019/06/25 Python
django中related_name的用法说明
2020/05/20 Python
Python requests上传文件实现步骤
2020/09/15 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
公司培训欢迎词
2014/01/10 职场文书
工商行政管理专业求职书
2014/05/23 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
安全保证书怎么写
2015/02/28 职场文书
停电调休通知
2015/04/16 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
logback如何自定义日志存储
2021/08/30 Java/Android