目录
对于 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;