有人知道用Python替代Matlab/Octave bwdist()函数吗?此函数用于返回给定矩阵中每个单元到最近的非零单元的欧几里得距离。我看到了一个Octave C实现,一个纯Matlab实现,我想知道是否有人必须用ansic(它不包含任何Matlab/Octave头文件,所以我可以很容易地从Python集成)或纯Python中实现它。在
我提到的两个链接如下:
作为测试,Matlab代码/输出如下所示:bw= [0 1 0 0 0;
1 0 0 0 0;
0 0 0 0 1;
0 0 0 0 0;
0 0 1 0 0]
D = bwdist(bw)
D =
1.00000 0.00000 1.00000 2.00000 2.00000
0.00000 1.00000 1.41421 1.41421 1.00000
1.00000 1.41421 2.00000 1.00000 0.00000
2.00000 1.41421 1.00000 1.41421 1.00000
2.00000 1.00000 0.00000 1.00000 2.00000
我在Python中测试了一个推荐的distance_transform_edt调用,结果如下:
将numpy作为np导入
从scipy import ndimage
^{pr2}$
这个结果似乎与倍频程/Matlab输出不匹配。在