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 基础学习第二弹 类属性和实例属性
Aug 27 Python
python中Genarator函数用法分析
Apr 08 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
Python 高级专用类方法的实例详解
Sep 11 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
python reverse反转部分数组的实例
Dec 13 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
python opencv角点检测连线功能的实现代码
Nov 24 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
星际争霸任务指南——神族
2020/03/04 星际争霸
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
深入php多态的实现详解
2013/06/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
JavaScript中的面向对象介绍
2012/06/30 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
家长对老师的评语
2014/04/18 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
国庆促销活动总结
2014/08/29 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
大学生党课心得体会
2016/01/07 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python