本文实例为大家分享了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实现抠图给证件照换背景源码相关推荐

  1. set在python中的用法_python中set的用法:详细源码示例

    这篇文章主要为大家详细介绍了python中set的用法:详细源码示例,具有一定的参考价值,可以用来参考一下. set函数基本用法感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. python ...

  2. python 开发视频播放网站_python开发微电影视频网站教程附源码

    做为一个合格的Pythoner,只掌握一个框架是不够,如果你有过其它Python框架(例如django)的使用经验,对比不同框架的特性来学习,你将收获更多 当前信息若含有黄赌毒等违法违规不良内容,请点 ...

  3. Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)

    1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...

  4. Python基于CycleGAN&pix2pix的黑白图像AI上色(源码&部署教程)

    1.项目背景 自从GAN技术发展以来,许多新奇的应用都得到了落地,本次我们来介绍其中一个小应用,就是黑白图像上色.想必大家在网上经常看到一些给黑白图像上色的视频,可以修复早期的黑白影像,背后的技术就是 ...

  5. Python基于改进YOLOv5的烟叶病害检测系统(附带源码)

    Python基于改进YOLOv5的烟叶病害检测系统(附带源码) 1.背景 2.前言 3.烟叶数据集的采集 4.烟叶数据集的标注 5.烟叶检测训练&识别效果 6.病害数据集的采集 7.病害数据集 ...

  6. python爬虫爬取王者荣耀官网全部英雄头像(源码分享)

    这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests import json from bs4 i ...

  7. 计算机毕业设计Python+uniapp联影医疗器械管理系统小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp联影医疗器械管理系统小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ ...

  8. [附源码]计算机毕业设计Python+uniapp基于Android的移动端校友通 zv2j0(程序+源码+LW+远程部署)

    [附源码]计算机毕业设计Python+uniapp基于Android的移动端校友通 zv2j0(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环 ...

  9. python爬取豆瓣读书top250并保存xls(含源码)

    python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...

最新文章

  1. loadrunner关联点总结
  2. vue-cli脚手架项目构成
  3. 【jquery模仿net控件】简单的datalist控件更新,及其简单应用
  4. docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行
  5. 一分钟了解 Matlab求两个矩阵的相关程度corr2
  6. 160个Crackme031之一元二次方程
  7. oracle删除表中数据_Excel工作表中,删除重复数据的2种方法解读,高效且实用!...
  8. LeetCode每日一题 530. 二叉搜索树的最小绝对差
  9. AVVision Organized Session (IROS'21) 征稿开启
  10. 报告漏洞后 马斯克宣布撤回FSD Beta 10.3版本
  11. html一个页面分页代码怎么写,纯JS前端实现分页代码
  12. 第七届蓝桥杯省赛--方格填数--DFS或全排列
  13. docker 部分常用镜像下载及安装
  14. 山西省行政村边界数据/乡镇街道边界数据/行政区划边界分布
  15. 关于电的计算机公式,电量计算公式_有关各类电量的计算公式
  16. win10 远程桌面卡顿_主编教你win10系统使用远程桌面卡顿的步骤
  17. 如何用公式编辑器编辑直角三角形符号
  18. 老男孩Day1作业(二):三级菜单
  19. PHP strpos
  20. vue2.0 仿蘑菇街

热门文章

  1. 201819102018刘宇超
  2. 算法——0-1背包问题
  3. 亚马逊云服务(AWS) 为机器学习扩圈 触及每一位AI工作者
  4. 鸿蒙华为测试,华为鸿蒙尝鲜测试正式开始,分三种形式
  5. 检测服务器是否开启重协商功能(用于CVE-2011-1473漏洞检测)
  6. 如何开通阿里云短信业务
  7. 使用jTessBoxEditorFX制作自己的字库
  8. RecyclerView控件的使用及子Item移动居中的实现(TV向)
  9. 演讲技巧_在技​​术会议上接受演讲的13个技巧
  10. delta机械臂,delta机器人,运动控制器,运动控制卡