Opencv实现抠图背景图替换功能

 更新时间:2019年05月21日 14:06:09   作者:MachineLP  
这篇文章主要为大家详细介绍了Opencv实现抠图替换背景图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Opencv实现抠图替换背景图的具体代码,供大家参考,具体内容如下

下面简单图片演示一下:

提取mask:

===>

替换背景:

 + =

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实现对数坐标系绘制与自定义映射

    这篇文章主要为大家学习介绍了如何利用Python实现对数坐标系绘制与坐标自定义映射,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-08-08
  • Python查找不限层级Json数据中某个key或者value的路径方式

    Python查找不限层级Json数据中某个key或者value的路径方式

    今天小编就为大家分享一篇Python查找不限层级Json数据中某个key或者value的路径方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python 20行简单实现有道在线翻译的详解

    Python 20行简单实现有道在线翻译的详解

    这篇文章主要介绍了Python实现有道在线翻译的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Python之字典对象的几种创建方法

    Python之字典对象的几种创建方法

    这篇文章主要介绍了Python之字典对象的几种创建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python实现GUI计算器(附源码)

    Python实现GUI计算器(附源码)

    这篇文章主要为大家详细介绍了如何利用Python语言实现GUI计算器,可执行复杂运算,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2022-11-11
  • Python中字符串和列表去重方法总结

    Python中字符串和列表去重方法总结

    这篇文章主要为大家整理了Python中实现字符串和列表去重的常用方法,文中的示例代码讲解详细,对我们深入了解Python有一定的帮助,感兴趣的可以了解一下
    2023-04-04
  • python3实现点餐系统

    python3实现点餐系统

    这篇文章主要为大家详细介绍了python3实现点餐系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python学习之包与模块详解

    Python学习之包与模块详解

    在了解完面向对象与异常处理机制之后,本文将详细为大家介绍Python中的包与模块,文中的示例讲解详细,感兴趣的小伙伴可以学习一下
    2022-03-03
  • streamlit(python构建web)之环境搭建过程

    streamlit(python构建web)之环境搭建过程

    这篇文章主要介绍了streamlit(python构建web)之环境搭建过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • python如何利用Mitmproxy抓包

    python如何利用Mitmproxy抓包

    这篇文章主要介绍了python如何利用Mitmproxy抓包,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10

最新评论