一、定义

给定欧氏空间中的两点集 python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码 ,豪斯多夫(Hausdorff)距离就是用来衡量这两个点集间的距离。定义公式如下:
python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_02其中,
python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_03
python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_04 称为双向 Hausdorff 距离, python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_05 称为从点集A到点集B的单向 Hausdorff 距离。相应地 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_06

二、例子

下面从一个例子来理解 Hausdorff 距离:

python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_07


上图中,给出了 A,B,C,D 四条路径,其中路径 A 具体为(16-17-18-19-20),路径 B 具体为(1-2-3-4-9-10)。要求 Hausdorff 距离 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_04,则需要先求出单向 Hausdorff 距离 python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_05python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_06

对于python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_05,以 A 中的点 16 为例,在路径 B中的所有点中,距离点 16 最近的是点 1 ,距离为 3。即: python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_12

同理由图可得:
python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_13
在它们中,值最大的为 3,故 python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_14

同理可得,python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_15

所以 python中豪斯多夫距离代码 豪斯多夫性质_点集_16

同理可求出上图中四条路径间的单向 Hausdorff 距离如下表所示:

python中豪斯多夫距离代码 豪斯多夫性质_点集_17

三、性质
  • 双向 Hausdorff 距离 python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_18 是单向 Hausdorff 距离 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_19python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_20

python中豪斯多夫距离代码 豪斯多夫性质_点集_21

  • 如上图,当 A 和 B 都是闭集的时候,Hausdorff 距离满足度量的三个定理:
  1. python中豪斯多夫距离代码 豪斯多夫性质_点集_22 ,当且仅当 python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_23 时,python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_24
  2. python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_25
  3. python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_26
  • 若凸集 python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_27 满足 python中豪斯多夫距离代码 豪斯多夫性质_点集_28python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_29,并记 python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_30 分别为 python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_27 边界的点集合,则 python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_27 的 Hausdorff 距离等于 python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_30
  • Hausdorff 距离易受到突发噪声的影响。
  • python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_34

当图像受到噪声污染或存在遮挡等情况时,原始的 Haudorff 距离容易造成误匹配。所以,在1933年,Huttenlocher 提出了部分 Hausdorff 距离的概念。
简单地说,包含 python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_35 个点的集合 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_36 与集合 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_37 的部分 Hausdorff 距离就是选取 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_36 中的 python中豪斯多夫距离代码 豪斯多夫性质_python中豪斯多夫距离代码_39 个点,然后求这 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_40 个点到 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_37 集合的最小距离,并排序,则排序后的第 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_40 个值就是集合 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_36 到集合 python中豪斯多夫距离代码 豪斯多夫性质_Hausdorff 距离_37 的部分单向 Hausdorff 距离。定义公式如下:
python中豪斯多夫距离代码 豪斯多夫性质_豪斯多夫距离_45
相应地,部分双向 Hausdorff 距离定义为:
python中豪斯多夫距离代码 豪斯多夫性质_点集_46