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中DOM方法的动态性
Apr 11 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
浅谈django 重载str 方法
May 19 Python
谈谈python垃圾回收机制
Sep 27 Python
Python实现异步IO的示例
Nov 05 Python
用Python实现屏幕截图详解
Jan 22 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生成唯一订单号的方法汇总
2015/04/16 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python实现爬虫下载美女图片
2015/07/14 Python
python简单分割文件的方法
2015/07/30 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python实现统计代码行的方法分析
2017/07/12 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
详解Python绘图Turtle库
2019/10/12 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
Python如何定义有默认参数的函数
2020/08/10 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
公司JAVA开发面试题
2015/04/02 面试题
优秀员工年终发言演讲稿
2014/01/01 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
简单租房协议书
2014/10/21 职场文书
2015年征兵工作总结
2015/07/23 职场文书
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers