0
点赞
收藏
分享

微信扫一扫

豪斯多夫距离(Hausdorff distance)


文章目录

  • ​​豪斯多夫距离(Hausdorff distance)​​
  • ​​引言​​
  • ​​Hausdorff距离​​

豪斯多夫距离(Hausdorff distance)

引言

当谈到距离时,我们通常指的是最短的距离:例如,如果说一个点豪斯多夫距离(Hausdorff distance)_算法距离多边形豪斯多夫距离(Hausdorff distance)_最短距离_02的距离为豪斯多夫距离(Hausdorff distance)_最短距离_03,我们通常假设豪斯多夫距离(Hausdorff distance)_最短距离_03豪斯多夫距离(Hausdorff distance)_算法豪斯多夫距离(Hausdorff distance)_最短距离_02的最近点的距离。

同样的逻辑也适用于两个多边形:对于两个多边形豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08,我们通常将它们的距离理解为豪斯多夫距离(Hausdorff distance)_几何学_07的任意点和豪斯多夫距离(Hausdorff distance)_算法_08的任意点之间的最短距离。形式上,这称为minimin 函数,因为豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08之间的距离豪斯多夫距离(Hausdorff distance)_最短距离_03由下式给出:

豪斯多夫距离(Hausdorff distance)_算法_14

这个等式用计算机程序表达:对于豪斯多夫距离(Hausdorff distance)_几何学_07的每个点豪斯多夫距离(Hausdorff distance)_html_16,找出它到豪斯多夫距离(Hausdorff distance)_算法_08的任何点豪斯多夫距离(Hausdorff distance)_矩阵_18的最小距离;最后,取其中的最小者。

这样的距离定义是有不足的:

(1)最短距离没有考虑到多边形的整个形状

豪斯多夫距离(Hausdorff distance)_算法_19

考虑图1中两个三角形的最短距离,由等式1可知这两个三角形非常接近。它们的距离由它们的红色顶点决定。

但是,从图中我们可以观察到两个多边形并不相近,因为它们的最远点(以蓝色显示)实际上离另一个多边形很远。

两个多边形之间的距离很小,应该意味着一个多边形的任何一点都离另一个多边形不远。

(2)最短距离没考虑对象的位置

在图2中,有两个与图1相同的三角形,只是位置不同。根据等式1,却可以得到它们的最短距离与图1的相同。

豪斯多夫距离(Hausdorff distance)_html_20

下面,我们将介绍Hausdorff距离,它能够考虑到这些问题。

Hausdorff距离

Hausdorff距离以Felix Hausdorff(1868-1942)命名的,是一个集合到另一个集合中最近点的最大距离。更正式地说,从集合豪斯多夫距离(Hausdorff distance)_几何学_07到集合豪斯多夫距离(Hausdorff distance)_算法_08的Hausdorff距离是一个maximin函数,定义为
豪斯多夫距离(Hausdorff distance)_几何学_23

其中豪斯多夫距离(Hausdorff distance)_html_16豪斯多夫距离(Hausdorff distance)_矩阵_18分别是集合豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08的点,豪斯多夫距离(Hausdorff distance)_矩阵_28是这些点之间的任何度量;例如欧几里得距离。

例: 给定两个点集豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08,求它们的Hausdorff距离豪斯多夫距离(Hausdorff distance)_几何学_31

豪斯多夫距离(Hausdorff distance)_矩阵_32

1 计算豪斯多夫距离(Hausdorff distance)_几何学_33豪斯多夫距离(Hausdorff distance)_矩阵_34的距离豪斯多夫距离(Hausdorff distance)_几何学_35

豪斯多夫距离(Hausdorff distance)_html_36

2 保留最短的一个豪斯多夫距离(Hausdorff distance)_矩阵_37

豪斯多夫距离(Hausdorff distance)_算法_38

3 计算豪斯多夫距离(Hausdorff distance)_最短距离_39豪斯多夫距离(Hausdorff distance)_矩阵_34的距离豪斯多夫距离(Hausdorff distance)_最短距离_41

豪斯多夫距离(Hausdorff distance)_最短距离_42

4 保留最短的一个豪斯多夫距离(Hausdorff distance)_算法_43

豪斯多夫距离(Hausdorff distance)_算法_44

5 豪斯多夫距离(Hausdorff distance)_矩阵_37豪斯多夫距离(Hausdorff distance)_算法_43中最大者即为Hausdorff距离豪斯多夫距离(Hausdorff distance)_矩阵_47

豪斯多夫距离(Hausdorff distance)_html_48

豪斯多夫距离(Hausdorff distance)_html_49

6 我们可以得到豪斯多夫距离(Hausdorff distance)_几何学_07中的任意点到豪斯多夫距离(Hausdorff distance)_算法_08部分点的距离,至多为豪斯多夫距离(Hausdorff distance)_几何学_31

豪斯多夫距离(Hausdorff distance)_几何学_53

暴力求解法:

1.  h = 0
2. for every point ai of A,
2.1 shortest = Inf ;
2.2 for every point bj of B
dij = d (ai , bj )
if dij < shortest then
shortest = dij
2.3 if shortest > h then
h = shortest

应该注意的是,Hausdorff距离是定向的(或者说不对称的),这意味着大多数情况豪斯多夫距离(Hausdorff distance)_几何学_31不等于豪斯多夫距离(Hausdorff distance)_几何学_55

例如,在上述例子中,豪斯多夫距离(Hausdorff distance)_矩阵_47,而豪斯多夫距离(Hausdorff distance)_几何学_57

这种不对称性是maximin函数的一个性质,而引言中minimin函数则是对称的。

Hausdorff距离的更一般定义是:

豪斯多夫距离(Hausdorff distance)_最短距离_58

它定义了豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08之间的Hausdorff距离,而等式2只是从豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08的Hausdorff距离(也称为有向Hausdorff距离)。豪斯多夫距离(Hausdorff distance)_几何学_31豪斯多夫距离(Hausdorff distance)_几何学_55有时被称为豪斯多夫距离(Hausdorff distance)_几何学_07豪斯多夫距离(Hausdorff distance)_算法_08的前向和反向Hausdorff距离。术语很多,但除非另有说明,否则在谈论Hausdorff距离时,都是指等式3。

如果集合豪斯多夫距离(Hausdorff distance)_几何学_07和集合豪斯多夫距离(Hausdorff distance)_算法_08是直线或多边形,则豪斯多夫距离(Hausdorff distance)_几何学_69将应用于这些直线或多边形的所有定义点,而不仅仅应用于其顶点。

回到引言中提到的最短距离的两个缺点。

(1)最短距离没有考虑到多边形整个形状

图四为以每个三角形的最远顶点为圆心,画出半径为豪斯多夫距离(Hausdorff distance)_算法_70的圆。可以看到Hausdorff距离能考虑到多边形的所有其他点。

豪斯多夫距离(Hausdorff distance)_最短距离_71

(2)最短距离没考虑对象的位置

从图5我们看到,Hausdorff距离对位置是敏感的。位置不同,得到的距离值也不同。
豪斯多夫距离(Hausdorff distance)_最短距离_72

参考:
​​​ http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/98/normand/main.html​​

举报

相关推荐

0 条评论