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实现360皮肤按钮控件示例
Feb 21 Python
Windows系统下安装Python的SSH模块教程
Feb 05 Python
python中for语句简单遍历数据的方法
May 07 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 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生成随机颜色的方法
2014/11/13 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
JS制作简易计算器的实例代码
2020/07/04 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
python妹子图简单爬虫实例
2015/07/07 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Python基于requests库爬取网站信息
2020/03/02 Python
python爬虫基础知识点整理
2020/06/02 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
优秀护士演讲稿
2014/04/30 职场文书
空气的环保标语
2014/06/12 职场文书