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局部赋值的规则
Mar 07 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
基于python实现简单日历
Jul 28 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
Python类装饰器实现方法详解
Dec 21 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
python实现键盘输入的实操方法
Jul 16 Python
Python切割图片成九宫格的示例代码
Mar 10 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
Python matplotlib多个子图绘制整合
Apr 13 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 和 MySQL 基础教程(一)
2006/10/09 PHP
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
JavaScript 高效运行代码分析
2010/03/18 Javascript
js原型链原理看图说明
2012/07/07 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
JavaScript数组去重实现方法小结
2020/01/17 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
python实现批量注册网站用户的示例
2019/02/22 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
jupyter notebook 重装教程
2020/04/16 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
UGG英国官方网站:UGG UK
2018/02/08 全球购物
婚假请假条格式及范文
2014/04/10 职场文书
精神文明单位申报材料
2014/05/02 职场文书
公司节能减排方案
2014/05/16 职场文书
医学生求职信
2014/07/01 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书