【发布时间】:2020-10-31 00:09:10
【问题描述】:
我有一堆蒙版(对象是白色,非对象是黑色),它们的边界框作为单独的图像,我试图将它们放回原始图像上的原始位置。我现在想到的是:
- 创建与原始图像大小相同的黑色图像。
- 将每个蒙版的值与原始图像上边界框的坐标值相加。
谁能告诉我我是否走在正确的道路上,有没有更好的方法来做到这一点?
下面是我的大致实现
import cv2
black_img = np.zeros((height,width)) # A image that is of the size of the original but is all black
mask = cv2.imread("mask.png")
bbox = [x1, y1, x2, y2] # Pretend that this is a valid bounding box coordinate on the original image
black_img[y1:y2, x1:x2] += mask
例如: 我有第一张图片,这是我的面具之一。它的大小与原始图像上的边界框相同。我正在尝试将每个蒙版重新合并在一起,以便获得类似于第二张图像的效果。
【问题讨论】:
-
如果我理解正确,你有一个具有白色(对象)和黑色(背景)值的掩码。您只想显示对象并将图像的其余部分设置为黑色。这是正确的吗?
-
很接近了。我确实有具有白色(对象)和黑色(背景)值的面具。我有很多面具,每个面具代表原始图片中的一个对象。我想将所有蒙版放在一个与原始图片大小相同的灰度图像中,并且每个对象都必须在其原始位置。
-
因此,对于每个小蒙版,您都有一个对应的边界框。你想聚合那些小的边界框。您的代码非常接近
标签: python opencv computer-vision cv2