首页 > 解决方案 > 计算两组凸多边形的相似度?

问题描述

我用不同的算法生成了两组凸多边形。每个集合中的每个多边形都由坐标数组[n_points, xy_coords] 描述,因此正方形由数组[4,2] 描述,但圆角五边形具有[80,2],额外的75 个点为用于描述曲率。

我的目标是量化两组几何图形的相似程度。

任何人都可以推荐任何这样做的方法吗?

到目前为止,我遇到过:

我想知道 2D 多边形还有哪些其他可靠的相似性度量。理想情况下,该方法需要在凸多边形上具有鲁棒性,并给出大集合(每个 10,000+)之间的相似性度量。

标签: algorithmgeometrysimilarity

解决方案


假设两个多边形都是对齐的、居中的和凸的,您可以尝试通过计算较小多边形的面积与两个多边形的凸包面积的比率来评估相似性。

比率 = 最小值(面积(A),面积(B))/面积(凸壳(A,B))

如果两个多边形相等,则该比率将为 1,如果像点和正方形一样严重不同,则该比率将为 0。

多边形的面积可以在 O(N) 时间内计算出来。请参见多边形的面积。凸包可以在 O(N log N) 中计算。请参阅凸包计算通过合并排序两个多边形的已排序顶点并应用格雷厄姆扫描算法的第二阶段,它可以加速到 O(N) 。


推荐阅读