python实现抠图给证件照换背景源码


Posted in Python onAugust 20, 2019

本文实例为大家分享了python实现抠图给证件照换背景的具体代码,供大家参考,具体内容如下

import cv2
import numpy as np
import matplotlib.pyplot as plt

#建立显示图片的函数
def show(image):
 plt.imshow(image)
 plt.axis('off')
 plt.show()
 
#导入前景图
img=cv2.imread('font.jpg') #图片导入
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #转换颜色模型
print(img.shape) #打印图片规格
show(img) #显示图片

#导入背景图
back_img = cv2.imread('back.jpg') #图片导入
back_img = cv2.cvtColor(back_img,cv2.COLOR_BGR2RGB) #转换颜色模型
print(back_img.shape) #打印图片规格
show(back_img) #显示图片

#裁剪图片
#img = img[0:1000,150:550] #裁剪图片大小
#show(img) #显示图片

#缩放图片
#print(img.shape) #打印图片规格
#img=cv2.resize(img,None,fx=0.9,fy=0.9) #图片缩小10%
#print(img.shape) #打印图片规格

#拆分图片信息
rows,cols,channels = img.shape #拆分图片信息

#转换格式
img_hsv = cv2.cvtColor(img,cv2.COLOR_RGB2HSV) #把图片转换成HSV格式,用于抠图
show(img_hsv) #显示图片

#抠图
lower_blue=np.array([0,0,0]) #获取最小阈值
upper_blue=np.array([0,255,255]) #获取最大阈值
mask = cv2.inRange(img_hsv, lower_blue, upper_blue) #创建遮罩
show(mask) #显示遮罩

erode=cv2.erode(mask,None,iterations=3) #图像腐蚀
show(erode) #显示图片
dilate=cv2.dilate(erode,None,iterations=1) #图像膨胀
show(dilate) #显示图片

opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (8,8))) #开运算
show(opening) #显示图片

center = [400,800] #设置前景图开始位置
for i in range(rows):
 for j in range(cols):
  if opening[i,j]==0: #代表黑色
   back_img[center[0]+i,center[1]+j] =img[i,j] #赋值颜色
show(back_img) #显示图片

back_img = cv2.cvtColor(back_img,cv2.COLOR_RGB2BGR) #图像格式转换
back_img=cv2.resize(back_img,None,fx=0.8,fy=0.8) #图像缩放20%
cv2.imwrite('result.png',back_img) #保存图像

完整源码:python实现抠图给证件照换背景源码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现类似ftp传输文件的网络程序示例
Apr 08 Python
Web服务器框架 Tornado简介
Jul 16 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
python数据封装json格式数据
Mar 04 Python
PyQt5重写QComboBox的鼠标点击事件方法
Jun 25 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
Python获取对象属性的几种方式小结
Mar 12 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 Python
python matplotlib绘制三维图的示例
Sep 24 Python
Python机器学习之基础概述
May 19 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 #Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 #Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 #Python
python实现证件照换底功能
Aug 20 #Python
pytorch多进程加速及代码优化方法
Aug 19 #Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 #Python
python opencv实现证件照换底功能
Aug 19 #Python
You might like
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
js定时器实例分享
2016/12/20 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
angularjs实现分页和搜索功能
2018/01/03 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python实现配置文件备份的方法
2015/07/30 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
中学家长会邀请函
2014/01/17 职场文书
外贸专业求职信
2014/03/09 职场文书
晨会主持词
2014/03/17 职场文书
给校长的一封检讨书
2014/09/20 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
见义勇为事迹材料
2014/12/24 职场文书
检讨书范文500字
2015/01/28 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书