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 相关文章推荐
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
Python正则表达式和re库知识点总结
Feb 11 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
Python将json文件写入ES数据库的方法
Apr 10 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
python获取array中指定元素的示例
Nov 26 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
Python+unittest+requests 接口自动化测试框架搭建教程
Oct 09 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生成plist数据的方法
2015/06/16 PHP
PHP加密技术的简单实现
2016/09/04 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
python 循环遍历字典元素的简单方法
2016/09/11 Python
Django实现分页功能
2018/07/02 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
小学新学期寄语
2014/04/02 职场文书
慈善晚会策划方案
2014/05/14 职场文书
中班教师个人总结
2015/02/05 职场文书
烈士陵园观后感
2015/06/08 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
MySQL系列之十一 日志记录
2021/07/02 MySQL
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
详解Python中__new__方法的作用
2022/03/31 Python
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏