Matlab/Octave bwdist() 함수를 파이썬으로 대체 한 사람은 누구입니까? 이 함수는 주어진 행렬에 대해 각 셀의 유클리드 거리를 가장 가까운 0이 아닌 셀로 반환합니다. 필자는 옥타브 C 구현, 순수 Matlab 구현을 보았고, 누구든지 ANSI C (어떤 Matlab/Octave 헤더도 포함하지 않으므로 쉽게 파이썬에서 통합 할 수 있음) 또는 순수 파이썬에서 구현해야하는지 궁금합니다. 내가 언급Python 또는 C에서 Matlab/Octave bwdist()
두 링크는 다음과 같습니다 : 나는 추천하여 테스트
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
:
테스트로는 MATLAB 코드/출력은 다음과 같이 보입니다 distance_transform_edt를 파이썬으로 호출하면 다음 결과를 얻을 수 있습니다 :
이 결과는 옥타브/매트랩 출력과 일치하지 않는 것 scipy 수입 ndimagea = 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.]]
에서 NP 로3210
수입 NumPy와.
을 할 필요가 없습니다를, 내가 코드를 변경하고 이 전화가 작동합니다. – user423805