如何有效地计算numpy中面具中距离最近1的距离?

时间:2012-03-12 15:22:40

标签: python algorithm numpy scipy

在numpy中我有一个1和0的2d数组。我需要计算一个新的数组(相同的维度),其中每个元素包含距离掩码数组中相应点最近的1的距离。

e.g。

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

我需要b看起来像这样:

array([[0,0,1],
       [0,1,1.41],
       [0,1,2]])

PS。我将在非常大的阵列上执行此操作,因此效率越高越好! 谢谢!

1 个答案:

答案 0 :(得分:10)

你正在寻找相当于MATLAB的bwdist;查看this SO question了解更多详情。简短的回答是使用scipy.ndimage.morphology.distance_transform_edt