在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。我将在非常大的阵列上执行此操作,因此效率越高越好! 谢谢!
答案 0 :(得分:10)
你正在寻找相当于MATLAB的bwdist
;查看this SO question了解更多详情。简短的回答是使用scipy.ndimage.morphology.distance_transform_edt
。