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 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
Web服务器框架 Tornado简介
Jul 16 Python
Python中DJANGO简单测试实例
May 11 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Python爬虫 urllib2的使用方法详解
Sep 23 Python
Pycharm小白级简单使用教程
Jan 08 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
keras slice layer 层实现方式
Jun 11 Python
Python如何识别银行卡卡号?
Jun 10 Python
Windows安装Anaconda3的方法及使用过程详解
Jun 11 Python
python中的装饰器该如何使用
Jun 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查看session内容的函数
2008/08/27 PHP
php 动态多文件上传
2009/01/18 PHP
php导入导出excel实例
2013/10/25 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP的反射机制实例详解
2017/03/29 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
详解各版本React路由的跳转的方法
2018/05/10 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
python正则表达式及使用正则表达式的例子
2018/01/22 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
django如何自己创建一个中间件
2019/07/24 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
客服服务心得体会
2013/12/30 职场文书
校园之星获奖感言
2014/01/29 职场文书
销售员岗位职责范本
2014/02/03 职场文书
道德模范事迹材料
2014/12/20 职场文书
个人政治思想总结
2015/03/05 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
golang slice元素去重操作
2021/04/30 Golang