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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值