python实现计算豪斯多夫(Hausdorff)距离

目录


对于 u 和 v 两个点的集合(线)求豪斯多夫距离

from scipy.spatial.distance import directed_hausdorff
u = np.array([(1.0, 0.0),
              (0.0, 1.0),
              (-1.0, 0.0),
              (0.0, -1.0)])
v = np.array([(2.0, 0.0),
              (0.0, 2.0),
              (-2.0, 0.0),
              (0.0, -4.0)])

单向

>>> directed_hausdorff(u, v)[0]
2.23606797749979
>>> directed_hausdorff(v, u)[0]
3.0

最大距离点的位置(注:下面输出的(3,3),表示u中索引为3的点到v距离最大,v中左边为3的点,到u距离最大)

>>> directed_hausdorff(v, u)[1:]
(3, 3)

豪斯多夫距离(最终输出)(从上一步最大的两个值中,再进行筛选,选最大值)

>>> max(directed_hausdorff(u, v)[0], directed_hausdorff(v, u)[0])
3.0

参考链接:
[1] Python scipy.spatial.distance.directed_hausdorff用法及代码示例 ;
[2] 官方网站scipy.spatial.distance.directed_hausdorff;

你可能感兴趣的:(机器学习算法,python,开发语言)