Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在二维Numpy数组中填充重叠的边界框_Python_Numpy_Geometry - Fatal编程技术网

Python 在二维Numpy数组中填充重叠的边界框

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

我有一个二进制2D Numpy数组,其中包含可能重叠的边界框,我想填充它。我附上了一张图来说明我的问题。输入在左边,理想输出在右边。我已经尝试了上面提到的解决方案,它在中间输出子图形,这不符合我的目的

方法#1:使用SciPy直接填充孔工具: -

进近#2:在一个角落(即
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)