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之画圈还不简单吗?
Sep 20 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
python距离测量的方法
Mar 06 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
阿里云ECS服务器部署django的方法
Aug 29 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
Python实现自定义读写分离代码实例
Nov 16 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python处理PDF与CDF实例
Feb 26 Python
python制作微博图片爬取工具
Jan 16 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之第一天
2006/10/09 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
详解vue-cli3使用
2018/08/14 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python之super的使用小结
2018/08/13 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python框架django项目部署相关知识详解
2019/11/04 Python
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
应届毕业生简历自我评价
2014/01/31 职场文书
生日寄语大全
2014/04/08 职场文书
财政局个人总结
2015/03/04 职场文书
同学聚会通知书
2015/04/20 职场文书
迎新生晚会主持词
2015/06/30 职场文书
干部考核工作总结2015
2015/07/24 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python