Image Processing Toolbox에 있는 bwdist.
이것이 2D 이미지만을 위한 함수인 줄 알고있다가 3D 데이터에도 적용 가능하다는 사실을 알고 실험해보았다.
img1 = imread('test.png');
[width,height] = size(img1);
bw = zeros(width, height, 256);
for x = 1:width
for y = 1:height
bw(x,y, img1(x,y)+1) = 1;
end
end
D1 = bwdist(bw);
isosurface(D1,2), axis equal, view(3)
camlight, lighting gouraud, title('Euclidean')
Isosurface, distance values 모두 제대로 구해진 것 같다.
빠르고 괜찮은 듯.