Matlab / Octave bwdist () на Python или C

Кто-нибудь знает о замене Python для функции Matlab / Octave bwdist ()? Эта функция возвращает евклидово расстояние каждой ячейки до ближайшей ненулевой ячейки для данной матрицы. Я видел реализацию Octave C, чистую реализацию Matlab, и мне было интересно, нужно ли кому-нибудь реализовать это в ANSI C (который не включает никаких заголовков Matlab / Octave, поэтому я могу легко интегрироваться с Python) или в чистом Python.

Обе ссылки, которые я упомянул, приведены ниже:

C ++

M-файл Matlab

В качестве теста код / ​​вывод Matlab выглядит примерно так: from scipy import ndimage

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 = ndimage.distance_transform_edt(a)
print res

[[ 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.]]

Этот результат, похоже, не соответствует выходным данным Octave / Matlab.

9
задан BBDynSys 10 March 2011 в 13:42
поделиться