相关疑难解决方法(0)

用Python或C编写的Matlab/Octave bwdist()

有没有人知道Matlab/Octave bwdist()函数的Python替换?对于给定矩阵,此函数将每个单元的欧几里德距离返回到最接近的非零单元.我看到了一个Octave C实现,一个纯Matlab实现,我想知道是否有人必须在ANSI C(它不包括任何Matlab/Octave头,因此我可以很容易地从Python集成)或纯Python中实现它.

我提到的两个链接如下:

C++

Matlab M-File

作为测试,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
Run Code Online (Sandbox Code Playgroud)

我在Python中测试了一个推荐的distance_transform_edt调用,它给出了这个结果:

从scipy import ndimage导入numpy as np

a = np.array(([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]))

res = …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy image-processing scipy

9
推荐指数
1
解决办法
3234
查看次数

标签 统计

image-processing ×1

matlab ×1

numpy ×1

python ×1

scipy ×1