matlab練習程序(Hausdorff距離)


Hausdorff距離是根據Hausdorff(1868-1942)命名的,Hausdorff距離是指某一集合中離另一集合最近點的所有距離的最大值 。

通常用如下公式表示:

需要注意的是h(A,B)和h(B,A)通常不相等,所以可以定義更一般的Hausdorff距離:

matlab代碼如下:

clear all;
close all;
clc;

p1 = rand(100,2);
p2 = rand(50,2)+1;

plot(p1(:,1),p1(:,2),'.');
hold on;
plot(p2(:,1),p2(:,2),'r.');

d = zeros(length(p1),1);
for i=1:length(p1)
    t = p2-p1(i,:);
    d(i) = min(sqrt(t(:,1).^2+t(:,2).^2));    
end
hab=max(d)

for i=1:length(p2)
    t = p1-p2(i,:);
    d(i) = min(sqrt(t(:,1).^2+t(:,2).^2));    
end
hba=max(d)

h=max([hab hba])

參考:http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/98/normand/main.html#algorithm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM