Python 在二维Numpy数组中填充重叠的边界框
我有一个二进制2D Numpy数组,其中包含可能重叠的边界框,我想填充它。我附上了一张图来说明我的问题。输入在左边,理想输出在右边。我已经尝试了上面提到的解决方案,它在中间输出子图形,这不符合我的目的 方法#1:使用SciPy直接填充孔工具: - 进近#2:在一个角落(即Python 在二维Numpy数组中填充重叠的边界框,python,numpy,geometry,Python,Numpy,Geometry,我有一个二进制2D Numpy数组,其中包含可能重叠的边界框,我想填充它。我附上了一张图来说明我的问题。输入在左边,理想输出在右边。我已经尝试了上面提到的解决方案,它在中间输出子图形,这不符合我的目的 方法#1:使用SciPy直接填充孔工具: - 进近#2:在一个角落(即0背景)用255进行洪水填充。所以,所有背景现在都是255。将其反转以获得255处的内部区域,但这会将内部长方体相交线设置为0。因此,或将其与原始图像进行匹配,以获得所需的输出。因此,实现将遵循这些思路- from skimag
0
背景)用255
进行洪水填充。所以,所有背景现在都是255
。将其反转以获得255处的内部区域,但这会将内部长方体相交线设置为0。因此,或
将其与原始图像进行匹配,以获得所需的输出。因此,实现将遵循这些思路-
from skimage.segmentation import flood_fill
filled = flood_fill(im.copy(), (0, 0), 255)
mask = (filled==0) | (im==255)
cv2.imwrite('out.png', (255*mask).astype(np.uint8))
或者使用im
数据:
im[mask] = 255
cv2.imwrite('out.png', im)
输入('box.png'):
输出('out.png'):
im[mask] = 255
cv2.imwrite('out.png', im)