Opencv实现抠图背景图替换功能


Posted in Python onMay 21, 2019

本文实例为大家分享了Opencv实现抠图替换背景图的具体代码,供大家参考,具体内容如下

下面简单图片演示一下:

提取mask:

Opencv实现抠图背景图替换功能===>Opencv实现抠图背景图替换功能

替换背景:

Opencv实现抠图背景图替换功能 + Opencv实现抠图背景图替换功能=Opencv实现抠图背景图替换功能

python的opencv代码如下:

# coding=utf-8
 
import cv2
import numpy as np
 
img=cv2.imread('lp.jpg')
img_back=cv2.imread('back.jpg')
#日常缩放
rows,cols,channels = img_back.shape
img_back=cv2.resize(img_back,None,fx=0.7,fy=0.7)
cv2.imshow('img_back',img_back)
 
rows,cols,channels = img.shape
img=cv2.resize(img,None,fx=0.4,fy=0.4)
cv2.imshow('img',img)
rows,cols,channels = img.shape#rows,cols最后一定要是前景图片的,后面遍历图片需要用到
 
#转换hsv
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
#获取mask
lower_blue=np.array([78,43,46])
upper_blue=np.array([110,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
cv2.imshow('Mask', mask)
 
#腐蚀膨胀
erode=cv2.erode(mask,None,iterations=1)
cv2.imshow('erode',erode)
dilate=cv2.dilate(erode,None,iterations=1)
cv2.imshow('dilate',dilate)
 
#遍历替换
center=[50,50]#在新背景图片中的位置
for i in range(rows):
 for j in range(cols):
 if dilate[i,j]==0:#0代表黑色的点
  img_back[center[0]+i,center[1]+j]=img[i,j]#此处替换颜色,为BGR通道
cv2.imshow('res',img_back)
 
cv2.waitKey(0)
cv2.destroyAllWindows()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
python文件的md5加密方法
Apr 06 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
Python iter()函数用法实例分析
Mar 17 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
使用python实现简单五子棋游戏
Jun 18 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
Python如何将装饰器定义为类
Jul 30 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
Jan 15 Python
python多进程读图提取特征存npy
May 21 #Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
May 21 #Python
python+selenium实现简历自动刷新的示例代码
May 20 #Python
图文详解python安装Scrapy框架步骤
May 20 #Python
Python配置虚拟环境图文步骤
May 20 #Python
Python检测数据类型的方法总结
May 20 #Python
Python中的引用知识点总结
May 20 #Python
You might like
基于php中使用excel的简单介绍
2013/08/02 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
Python中的多重装饰器
2015/04/11 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
django的ORM模型的实现原理
2019/03/04 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
食堂员工工作职责
2013/12/18 职场文书
中班中秋节活动反思
2014/02/18 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
新教师培训方案
2014/06/08 职场文书
五四青年节活动总结
2015/02/10 职场文书
本溪水洞导游词
2015/02/11 职场文书
小学运动会报道稿
2015/07/22 职场文书
防溺水主题班会教案
2015/08/12 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android
Python加密技术之RSA加密解密的实现
2022/04/08 Python
Mysql数据库group by原理详解
2022/07/07 MySQL