1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| % Hausdorff distance
% version 1.5
% Inputs
B=[0,0,0,1;0,0,1,1;0,0,0,0];
A=[0,0,0,0;0,0,0,0;0,0,1,1];
% From A To B
D_init=0;
D_old=D_init;
for i = 1:size(A,1)
for j = 1:(size(A,2))
d_init = 10000;
if (A(i,j)==1)
d_old = d_init;
for m = 1:size(B,1)
for n = 1:size(B,2)
if (B(m,n)==1)
d_new = sqrt((i-m)*(i-m)+(j-n)*(j-n));
d_new;
if (d_new < d_old)
d_old = d_new;
end
d_old;
end
end
end
D_new = d_old;
D_new;
if (D_new) > (D_old)
D_old = D_new;
end
end
end
end
H1 = D_old;
H1;
% From B to A
for i = 1:size(B,1)
for j = 1:(size(B,2))
d_init = 10000;
if (B(i,j)==1)
d_old = d_init;
for m = 1:size(A,1)
for n = 1:size(A,2)
if (A(m,n)==1)
d_new = sqrt((i-m)*(i-m)+(j-n)*(j-n));
d_new;
if (d_new < d_old)
d_old = d_new;
end
d_old;
end
end
end
D_new = d_old;
D_new;
if (D_new) > (D_old)
D_old = D_new;
end
end
end
end
H2 = D_old;
hausdorff=max(H1,H2);
% Display
fprintf('\n');
fprintf('\n');
fprintf('Hausdorff Distance is:');
hausdorff
fprintf('-----------------');
fprintf('\n');
fprintf('From A to B ->');
H1
fprintf('From A to B ->');
H2
fprintf('-----------------'); |
Partager