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中的类与对象之描述符详解
Mar 27 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
python从入门到精通(DAY 2)
Dec 20 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
python定时关机小脚本
Jun 20 Python
python直接获取API传递回来的参数方法
Dec 17 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
Python自动创建Excel并获取内容
Sep 16 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 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
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
智能电子应届生求职信
2013/11/10 职场文书
服务之星获奖感言
2014/01/21 职场文书
法制宣传口号
2014/06/16 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
2014年公司工作总结
2014/11/22 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
月考总结与反思
2015/10/22 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis