gpt4 book ai didi

python - 识别二维 numpy 数组中的连续区域

转载 作者:太空狗 更新时间:2023-10-29 17:44:17 25 4
gpt4 key购买 nike

我有一个大的 numpy 数组,我已经对其应用了过滤器。我想识别这个掩码数组中的连续区域。在这里,我将一个区域定义为连续的,如果对于任何索引 (x1,y1) 到任何其他索引 (x2,y2),它们属于同一区域如果沿着轴(对角线是有效步长)存在一条由 True 值组成的路径。

这可能不像一张简单的图片那么清晰。给定面具:

0010000
0100000
0110000
0000011
1000010

应该识别出三个区域,这样输出类似于

[ [[0,2],[1,1],[2,1],[2,2]], [[3,5],[3,6],[4,5]], [[4,0]] ]

我想使用 numpy 中内置的东西,而不用自己写 Flood Fill算法。对文档进行一些研究只发现了一个 1D version我要问的。

最佳答案

您正在寻找 scipy.ndimage.label,更多信息 here . label 返回一个与输入形状相同的数组,其中每个“独特的特征都有一个独特的值”,所以如果你想要特征的索引,你可以这样做:

labels, numL = label(array)
label_indices = [(labels == i).nonzero() for i in xrange(1, numL+1)]

关于python - 识别二维 numpy 数组中的连续区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9440921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com