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 相关文章推荐
qpython3 读取安卓lastpass Cookies
Jun 19 Python
python实现批量按比例缩放图片效果
Mar 30 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
Python for循环及基础用法详解
Nov 08 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
python3.8下载及安装步骤详解
Jan 15 Python
python实现滑雪游戏
Feb 22 Python
jupyter note 实现将数据保存为word
Apr 14 Python
python针对Oracle常见查询操作实例分析
Apr 30 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 PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
JS模板实现方法
2013/04/03 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
Python中List.index()方法的使用教程
2015/05/20 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python让列表倒序输出的实例
2018/06/25 Python
Python 忽略warning的输出方法
2018/10/18 Python
python实现文法左递归的消除方法
2020/05/22 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
最新党员的自我评价分享
2013/11/04 职场文书
材料采购员岗位职责
2013/12/17 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
相亲活动方案
2014/08/26 职场文书
暑期学习心得体会
2014/09/02 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
学雷锋感言
2015/08/03 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python