如何在Python中高效地计算2D网格上的一组1?[下图]

3

我有几百个2D的numpy数组。它们包含0和1。以下是一些带有图形示例的数组,黄色表示1,紫色表示0:

grid1=np.array([[1, 1, 0, 0, 1, 1, 0, 0],
               [1, 1, 0, 1, 1, 1, 0, 0],
               [1, 1, 0, 1, 1, 1, 0, 0],
               [1, 0, 0, 0, 1, 0, 0, 0],
               [0, 0, 0, 0, 0, 0, 0, 0]])

plt.imshow(grid1)

enter image description here

grid2=np.array([[1, 1, 0, 0, 0, 0, 0, 0],
               [1, 1, 1, 1, 1, 0, 0, 0],
               [1, 1, 1, 1, 1, 0, 0, 0],
               [1, 0, 0, 1, 1, 0, 0, 0],
               [0, 0, 0, 0, 0, 0, 0, 0]])

plt.imshow(grid2)

enter image description here

grid3=np.array([[1, 1, 0, 0, 1, 0, 0, 1],
               [0, 1, 0, 1, 1, 0, 1, 1],
               [0, 1, 0, 1, 1, 0, 0, 0],
               [0, 0, 0, 0, 1, 1, 1, 0],
               [1, 1, 1, 0, 0, 0, 0, 0]])

plt.imshow(grid3)

enter image description here

我正在寻找一种高效的方法来计算图像中黄色斑点的数量。从上到下的图像中有2、1和4个斑点。
是否有一种简单的方法来做到这一点,或者我必须检查每个黄色位是否与所有其他黄色位在同一个斑点中,并为此编写脚本?(看起来非常痛苦。)
1个回答

2

scipy.ndimage.measurements.label 可以满足你的需求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接