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中subprocess的简单使用示例
Jul 28 Python
Python单链表简单实现代码
Apr 27 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
python 实现A*算法的示例代码
Aug 13 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
Python 处理文件的几种方式
Aug 23 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
python实现监听键盘
Apr 26 Python
利用python调用摄像头的实例分析
Jun 07 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数组最大值,最小值的代码
2011/10/31 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
客户端静态页面玩分页
2006/06/26 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python中的self用法详解
2019/08/06 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
政府绩效管理实施方案
2014/05/04 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
技校毕业生自荐书
2014/05/23 职场文书
年度评优评先方案
2014/06/03 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
学位证书委托书
2014/09/30 职场文书
违纪检讨书范文
2015/01/27 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书