opencv python照片去背景_使用opencv Python移除图像的背景

本文介绍了如何利用OpenCV的watershed算法去除图像背景。通过手动选择标记点,创建遮罩并应用分水岭算法,可以将汽车等对象从背景中分离出来。最终通过膨胀操作和位与运算保留汽车部分,实现背景替换。
摘要由CSDN通过智能技术生成

我用OpenCV的watershed算法解决了你的问题。你可以找到分水岭的理论和例子。

首先,我选择了几个点(标记)来指定我要保留的对象的位置,以及背景的位置。这个步骤是手动的,并且可以在不同的图像之间变化很大。而且,它需要一些重复,直到你得到想要的结果。我建议使用一个工具来获取像素坐标。

然后我创建了一个由零组成的空整数数组,其中包含汽车图像的大小。然后我给标记位置的像素分配了一些值(1:背景,[255192128,64]:汽车部件)。

注意:当我下载您的图像时,我必须将其裁剪以获得带有汽车的图像。裁剪后的图像大小为400x601。这可能不是图像的大小,所以标记将关闭。

之后我使用分水岭算法。第一个输入是您的图像,第二个输入是标记图像(除标记位置外,其他位置均为零)。结果如下图所示。

我将所有像素的值设置为1到255(汽车),其余的(背景)为零。然后用3x3核对得到的图像进行放大,以避免丢失汽车轮廓的信息。最后,我使用cv2.bitwise_and()函数将放大的图像用作原始图像的遮罩,结果如下:

这是我的代码:import cv2

import numpy as np

import matplotlib.pyplot as plt

# Load the image

img = cv2.imread("/path/to/image.png", 3)

# Create a blank image of zeros (same dimens

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值