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 相关文章推荐
Python实现爬取需要登录的网站完整示例
Aug 19 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
python3模块smtplib实现发送邮件功能
May 22 Python
Django中多种重定向方法使用详解
Jul 17 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
python字典的常用方法总结
Jul 31 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
Python requests设置代理的方法步骤
Feb 23 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
如何在python中处理配置文件代码实例
Sep 27 Python
安装pyinstaller遇到的各种问题(小结)
Nov 20 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
jQuery使用手册之一
2007/03/24 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
初学Python实用技巧两则
2014/08/29 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
Pandas的Apply函数具体使用
2020/07/21 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
卫校护理专业毕业生求职信
2013/11/26 职场文书
环境卫生倡议书
2014/08/29 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
晚会开幕词
2015/01/28 职场文书
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL