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

我使用OpenCV的

watershed算法解决了你的问题.您可以找到分水岭

here的理论和实例.

首先,我选择了几个点(标记)来指示我想要保留的对象在哪里,以及背景在哪里.此步骤是手动的,并且可能因图像而异.此外,它需要一些重复,直到您得到所需的结果.我建议使用工具来获取像素坐标.

然后我创建了一个零的空整数数组,其中包含汽车图像的大小.然后我将一些值(1:背景,[255,192,128,64]:car_parts)分配给标记位置的像素.

注意:当我下载你的图像时,我不得不裁剪它以获得与汽车的一个.裁剪后,图像大小为400×601.这可能不是您拥有的图像大小,因此标记将关闭.

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

QWmzF.png

我将所有像素的值设置为大于1到255(汽车),其余(背景)为零.然后我用3×3内核扩张获得的图像,以避免丢失关于汽车轮廓的信息.最后,我使用扩展图像作为原始图像的掩码,使用cv2.bitwise_and()函数,结果如下图所示:

GpFFg.png

这是我的代码:

import cv2

import numpy as np

import matplotlib.pyplot as plt

# Load the image

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

# Create a blan

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值