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开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
python+pygame简单画板实现代码实例
Dec 13 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
python实现百度语音识别api
Apr 10 Python
python学生信息管理系统(初级版)
Oct 17 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
python 解决微分方程的操作(数值解法)
May 26 Python
python内置进制转换函数的操作
Jun 02 Python
Github 使用python对copilot做些简单使用测试
Apr 14 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
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
理解Python中的绝对路径和相对路径
2017/08/30 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
文明礼仪标语
2014/06/13 职场文书
师德师风个人总结
2015/02/06 职场文书
婚宴父母致辞
2015/07/27 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
服务器nginx权限被拒绝解决案例
2022/09/23 Servers