python opencv实现证件照换底功能
本文实例为大家分享了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])
结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
基于OpenCV python3实现证件照换背景的方法
简述 生活中经常要用到各种要求的证件照电子版,红底,蓝底,白底等,大部分情况我们只有其中一种,所以通过技术手段进行合成,用ps处理证件照,由于技术不到位,有瑕疵,所以想用python&openCV通过代码的方式实现背景颜色替换,加强一下对于openCV的学习,锻炼一下编码水平. 软件环境: python3.5 opencv2 windows 10 图像载入 导入opencv库,使用imread函数读取图片 import cv2 import numpy as np img=cv2.imread(
-
python3基于OpenCV实现证件照背景替换
本文实例为大家分享了python3实现证件照背景替换的具体代码,供大家参考,具体内容如下 import cv2 import numpy as np img=cv2.imread('zjz.jpg') #缩放 rows,cols,channels = img.shape img=cv2.resize(img,None,fx=0.5,fy=0.5) rows,cols,channels = img.shape cv2.imshow('img',img) #转换hsv hsv=cv2.cvtColo
-
python opencv实现证件照换底功能
本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下 思路:先转到HSV空间,利用颜色提取背景制作掩模版mask,然后通过按位操作提取人像和制作新背景,最后叠加背景和人像得到换底后照片 代码 #-*-coding:utf-8-*- import cv2 import numpy as np def cvtBackground(path,color): """ 功能:给证件照更换背景色(常用背景色红.白.蓝) 输入参数:path:
-
python实现证件照换底功能
本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见了这个,参考:python opencv实现证件照换底功能 本人基于此做了一些改进,便于自己运行和调试,还加了中值滤波,本人觉得效果还不错~ 代码: import cv2 import numpy as np def cvtBackground(path,color): """ 功能:给证件照更换背景色(常用背景色红.白.蓝) 输入参数:
-
C++使用OpenCV实现证件照蓝底换成白底功能(或其他颜色如红色)详解
本文实例讲述了C++使用OpenCV实现证件照蓝底换成白底功能(或其他颜色如红色).分享给大家供大家参考,具体如下: 今天刚好老师要办点事情,老师唯一的一张证件照是蓝色的,但是需要的底色是白色的,于是乎,好久不折腾的PS也忘记了,还好旁边的刚来的小学弟懂一点, 在那里慢慢的帮老师一点点的处理,PS在边缘的地方效果还真不咋地,确实是一门技术活. 于是我就想OpenCV能不能实现呢?一搜百度第一篇就是,但是人家转成红色,然后我又对HSV颜色空间不是很懂,最后在一个学习群里 但是文中未对HSV那一块做
-
php实现的证件照换底色功能示例【人像抠图/换背景图】
本文实例讲述了php实现的证件照换底色功能.分享给大家供大家参考,具体如下: <?php //背景图和原图需要保持宽高要保持一样,这里的示例原图用的是蓝色背景 init(); function init(){ $old = '1.png'; $new = '2.png'; //创建一个png透明图 $img = imagecreatefrompng($old); setpng($img,$old,$new); } function setpng($imgid,$filename,$savenam
-
python opencv实现目标区域裁剪功能
这个任务是自己在项目中数据处理的一部分内容,待处理的图片如下所示: 我需要将目标区域给裁剪出来,要不然在后期训练网络的时候整幅图像过大,且目标区域过小,得到结果不好,还会加剧计算量.在网上找了各个大佬的博客看,没找到合适的,便自己动手写了,顺便自己的小破站刚搭建起来,记录一下自己的思路. 思路 去寻找目标区域的最左边,最右边,最上面和最下面的像素点,取到坐标信息以后用CV2的裁剪一下就可以实现了. #难点 数据总共是11952张图片,每张图片是1024*768大小的,依次去遍历的话担心太费时间了
-
Python Barbershop实现照片换发型功能
目录 前言 环境部署 1.导入environment/environment.yaml环境 2.安装pytorch 3.依赖库安装 4. cl.exe环境变量配置 5.模型下载 6.发型数据下载 7.代码调整 项目验证 1.预处理照片 2.换发型 总结 前言 最近看到一个开源项目(Barbershop),可以将照片中的发型更换成另一个,很神奇.先给大家看看项目给出的效果图. 先说说我在安装使用该项目的感受,因为作者给的安装说明太少,我边看代码边安装环境花了整整8个小时,顺便还在等安装的过程中,追
-
Python OpenCV超详细讲解基本功能
目录 准备工作 转成灰度图像 高斯模糊 边缘检测 膨胀运算 腐蚀运算 准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库. 转成灰度图像 调用imread()方法获取我们资源文件夹中的图片lena.png cvtColor()方法可以让我们的图片转换成任意颜色,第一个参数是我们要转换的图片,第二个参数是要转成的颜色空间,cv2.COLOR_BGR2GRAY就是由BGR变为GRAY,我们日常生活中都是RGB三通道顺序,而在Op
-
Python+OpenCV实现黑白老照片上色功能
目录 导语 一.环境准备 二.代码展示 三.效果展示 导语 我们都知道,有很多经典的老照片,受限于那个时代的技术,只能以黑白的形式传世.尽管黑白照片别有一番风味,但是彩色照片有时候能给人更强的代入感.今天在这里给大家提供一种给黑白照片上色的方法,尽管无法还原当时真实的颜色,但确实可以达到后期者的心中所想的颜色. 当然,除了让老照片变成彩色这一用途之外,还可以将现时的一些黑白照片自行染上彩色,完全按照自己的想法来上色,再和彩色的原图进行对比,也不失为一种有趣的玩法. ——小故事 年前在家中进行过年
-
Python Opencv实现图像轮廓识别功能
本文实例为大家分享了python opencv识别图像轮廓的具体代码,供大家参考,具体内容如下 要求:用矩形或者圆形框住图片中的云朵(不要求全部框出) 轮廓检测 Opencv-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓. import cv2 img = cv2.imread('cloud.jpg') # 灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化 ret, binary = cv2.th
-
使用python半分钟轻松完成证件照换底色
导语 小伙伴们都知道,刚入职的时候都是要求新人入职带着自己的证件照的,这应该是几寸的来着,小编入职这么久都忘记了!!! 昨天下班之后跟之前的老朋友聚餐,其实一个兄弟的跟我说:"老表,你现在是编程的,又没得办法帮我一个忙?" 我这一听:"什么事儿?你说" "我老婆前几天刚入职新公司,但是入职之后才晓得照片是需要蓝底儿的,主要是那个照证件照的离家太远了,索性问下你有啥办法没?" 那当然,为了节省他们的时间,这小忙我义不容辞,也就几分钟的事儿. 正文
随机推荐
- 利用Angularjs和原生JS分别实现动态效果的输入框
- 使用母版页时内容页如何使用css和javascript
- Docker网络之单host网络及使用案例
- 基于DOM节点删除之empty和remove的区别(详解)
- Vue.js 递归组件实现树形菜单(实例分享)
- python获取文件扩展名的方法
- react.js使用webpack搭配环境的入门教程
- JS动态改变表格边框宽度的方法
- JS动态日期时间的获取方法
- 微信公众平台支付开发详解
- PHPLog php 程序调试追踪工具
- PHP、Nginx、Apache中禁止网页被iframe引用的方法
- JS实现可调整倒计时间代码分享
- JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
- jquery实现的判断倒计时是否结束代码
- JavaScript 输入框内容格式验证代码
- Bootstrap table的使用方法
- Android Activity 横竖屏切换的生命周期
- Java Web项目中Spring框架处理JSON格式数据的方法
- Android LayoutInflater深入分析及应用