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 相关文章推荐
Django数据库类库MySQLdb使用详解
Apr 28 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
Django 开发环境配置过程详解
Jul 18 Python
python ftplib模块使用代码实例
Dec 31 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
python3 re返回形式总结
Nov 20 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
python requests模块的使用示例
Apr 07 Python
Python包argparse模块常用方法
Jun 04 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/07 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
vue中rem的配置的方法示例
2018/08/30 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
什么是索引指示器
2012/08/20 面试题
火车来了教学反思
2014/02/11 职场文书
2015年中秋寄语
2015/07/31 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python