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中的tkinter模块作图的方法
Feb 07 Python
Python中几种导入模块的方式总结
Apr 27 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
sklearn+python:线性回归案例
Feb 24 Python
Python decimal模块使用方法详解
Jun 08 Python
python3中calendar返回某一时间点实例讲解
Nov 18 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 命令行参数详解及应用
2011/05/18 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
仿百度输入框智能提示的js代码
2013/08/22 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
Javascript缓存API
2016/06/14 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
Vue声明式渲染详解
2017/05/17 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python实现从url中提取域名的几种方法
2014/09/26 Python
python简单分割文件的方法
2015/07/30 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
python读取文本中的坐标方法
2018/10/14 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
Python是怎样处理json模块的
2020/07/16 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
销售人员管理制度
2015/08/06 职场文书
Python中字符串对象语法分享
2022/02/24 Python