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选择排序算法的实现代码
Nov 21 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Python实现多并发访问网站功能示例
Jun 19 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
Apr 30 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
python实现单机五子棋
Aug 28 Python
Python return语句如何实现结果返回调用
Oct 15 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 Python
pandas DataFrame.shift()函数的具体使用
May 24 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
PHP的历史和优缺点
2006/10/09 PHP
将php数组输出html表格的方法
2014/02/24 PHP
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
JS抛物线动画实例制作
2018/02/24 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
Python循环语句之break与continue的用法
2015/10/14 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
考试诚信承诺书
2014/05/23 职场文书
语文课外活动总结
2014/08/27 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
北大自主招生自荐信
2015/03/04 职场文书
员工福利申请报告
2015/05/15 职场文书
退货证明模板
2015/06/23 职场文书
安全主题班会教案
2015/08/12 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
初中语文教学反思范文
2016/03/03 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
Python基础学习之奇异的GUI对话框
2021/05/27 Python
Python快速实现一键抠图功能的全过程
2021/06/29 Python