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 3.x 新特性及10大变化
Jun 12 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
Python制作Windows系统服务
Mar 25 Python
Python基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
Java分治归并排序算法实例详解
Dec 12 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
python 生成图形验证码的方法示例
Nov 11 Python
django+mysql的使用示例
Nov 23 Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 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面向对象的方法重载两种版本比较
2008/09/08 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
基于Python函数和变量名解析
2019/07/19 Python
centos7之Python3.74安装教程
2019/08/15 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python 读取二进制 显示图片案例
2020/04/24 Python
Python爬虫与反爬虫大战
2020/07/30 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
消防安全汇报材料
2014/02/08 职场文书
税务干部鉴定材料
2014/02/11 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
2014年就业工作总结
2014/11/26 职场文书
事业单位考察材料范文
2014/12/25 职场文书
学校社团活动总结
2015/05/07 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
小组口号霸气押韵
2015/12/24 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
python基于机器学习预测股票交易信号
2021/05/25 Python
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python