python如何换背景_python实现抠图给证件照换背景源码
本文实例为大家分享了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实现抠图给证件照换背景源码相关推荐
- set在python中的用法_python中set的用法:详细源码示例
这篇文章主要为大家详细介绍了python中set的用法:详细源码示例,具有一定的参考价值,可以用来参考一下. set函数基本用法感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. python ...
- python 开发视频播放网站_python开发微电影视频网站教程附源码
做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...
- Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)
1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...
- Python基于CycleGAN&pix2pix的黑白图像AI上色(源码&部署教程)
1.项目背景 自从GAN技术发展以来,许多新奇的应用都得到了落地,本次我们来介绍其中一个小应用,就是黑白图像上色.想必大家在网上经常看到一些给黑白图像上色的视频,可以修复早期的黑白影像,背后的技术就是 ...
- Python基于改进YOLOv5的烟叶病害检测系统(附带源码)
Python基于改进YOLOv5的烟叶病害检测系统(附带源码) 1.背景 2.前言 3.烟叶数据集的采集 4.烟叶数据集的标注 5.烟叶检测训练&识别效果 6.病害数据集的采集 7.病害数据集 ...
- python爬虫爬取王者荣耀官网全部英雄头像(源码分享)
这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests import json from bs4 i ...
- 计算机毕业设计Python+uniapp联影医疗器械管理系统小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp联影医疗器械管理系统小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ ...
- [附源码]计算机毕业设计Python+uniapp基于Android的移动端校友通 zv2j0(程序+源码+LW+远程部署)
[附源码]计算机毕业设计Python+uniapp基于Android的移动端校友通 zv2j0(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环 ...
- python爬取豆瓣读书top250并保存xls(含源码)
python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...
最新文章
- loadrunner关联点总结
- vue-cli脚手架项目构成
- 【jquery模仿net控件】简单的datalist控件更新,及其简单应用
- docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行
- 一分钟了解 Matlab求两个矩阵的相关程度corr2
- 160个Crackme031之一元二次方程
- oracle删除表中数据_Excel工作表中,删除重复数据的2种方法解读,高效且实用!...
- LeetCode每日一题 530. 二叉搜索树的最小绝对差
- AVVision Organized Session (IROS'21) 征稿开启
- 报告漏洞后 马斯克宣布撤回FSD Beta 10.3版本
- html一个页面分页代码怎么写,纯JS前端实现分页代码
- 第七届蓝桥杯省赛--方格填数--DFS或全排列
- docker 部分常用镜像下载及安装
- 山西省行政村边界数据/乡镇街道边界数据/行政区划边界分布
- 关于电的计算机公式,电量计算公式_有关各类电量的计算公式
- win10 远程桌面卡顿_主编教你win10系统使用远程桌面卡顿的步骤
- 如何用公式编辑器编辑直角三角形符号
- 老男孩Day1作业(二):三级菜单
- PHP strpos
- vue2.0 仿蘑菇街
热门文章
- 201819102018刘宇超
- 算法——0-1背包问题
- 亚马逊云服务(AWS) 为机器学习扩圈 触及每一位AI工作者
- 鸿蒙华为测试,华为鸿蒙尝鲜测试正式开始,分三种形式
- 检测服务器是否开启重协商功能(用于CVE-2011-1473漏洞检测)
- 如何开通阿里云短信业务
- 使用jTessBoxEditorFX制作自己的字库
- RecyclerView控件的使用及子Item移动居中的实现(TV向)
- 演讲技巧_在技​​术会议上接受演讲的13个技巧
- delta机械臂,delta机器人,运动控制器,运动控制卡