python 快速简单实现图像背景更换

1. 开发准备
Python 3 解释器
OpenCV-Python库
cvzone库
mediapipe库(cvzone库依赖)
pip安装命令如下:

pip install cvzone mediapipe OpenCV-Python
1
安装无报错后,即可开始编写代码。

2. 代码
代码如下:

import cv2
from cvzone.SelfiSegmentationModule import SelfiSegmentation

# 读取input.png
image = cv2.imread('input.png')

segmentor = SelfiSegmentation()
# 更换背景
new_image = segmentor.removeBG(image, (255, 255, 255), threshold=0.3)

# 输出照片
cv2.imwrite("output.png", new_image)

removeBG参数如下:

img需要更换背景的图片
imgBg图片背景,可以为图片对象,也可以为元组RGB值
threshold图片分割阈值,用来控制删除背景区域的大小
3. 效果
效果如下:(左为input.png,右为output.png)

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答这个问题,让我们开始吧!首先,你需要安装 OpenCV 和 Matplotlib 这两个库,它们可以帮助你处理图像。 代码如下: ```python import cv2 import matplotlib.pyplot as plt # 读取原始图像和替换的背景图像 original_image = cv2.imread("original.jpg") background_image = cv2.imread("background.jpg") # 把原始图像转换成HSV色彩空间 original_hsv = cv2.cvtColor(original_image, cv2.COLOR_BGR2HSV) # 确定要替换的颜色范围,这里以蓝色为例 lower_blue = np.array([90, 50, 50]) upper_blue = np.array([130, 255, 255]) # 利用 inRange 函数获取颜色范围内的图像掩码 mask = cv2.inRange(original_hsv, lower_blue, upper_blue) # 利用 bitwise_and 函数获取新的图像 foreground = cv2.bitwise_and(original_image, original_image, mask=mask) background = cv2.bitwise_and(background_image, background_image, mask=cv2.bitwise_not(mask)) new_image = cv2.add(foreground, background) # 展示新的图像 plt.imshow(cv2.cvtColor(new_image, cv2.COLOR_BGR2RGB)) plt.show() ``` 解释一下代码: 首先,我们需要用 `cv2.imread()` 函数读取原始图像和替换的背景图像。 然后,我们把原始图像转换成 HSV 色彩空间,这是因为 HSV 色彩空间可以更好地表示颜色信息。 接着,我们确定要替换的颜色范围,这里我们以蓝色为例,利用 `cv2.inRange()` 函数获取颜色范围内的图像掩码。 然后,利用 `cv2.bitwise_and()` 函数分别获取前景图像背景图像,最后使用 `cv2.add()` 函数把它们合在一起。 最后,我们展示新的图像,使用 `cv2.cvtColor()` 函数把 BGR 色彩空间转换成 RGB 色彩空间,结合使用 Matplotlib 库的 `plt.imshow()` 函数展示图像。 这就是一个简单图像分割更换背景的代码,希望对你有用!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值