计算2组凸多边形的相似度?

Calculating the similarity of 2 sets of convex polygons?

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

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

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

到目前为止我遇到过:

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

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

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

如果两个多边形相等,则比率为 1,如果点和正方形差异很大,则比率为 0。

可以在 O(N) 时间内计算出多边形的面积。参见 Area of polygon。 可以在 O(N log N) 中计算凸包。参见 Convex Hull Computation. It could be speed up to O(N) by merge-sorting already sorted vertices of both polygons and applying the second phase of Graham Scan Algorithm

据我了解,您正在寻找形状相似性或形状分析算法。您会在这里找到更强大的方法:https://www.cs.princeton.edu/courses/archive/spr00/cs598b/lectures/polygonsimilarity/polygonsimilarity.pdfhttps://student.cs.uwaterloo.ca/~cs763/Projects/phil.pdf

  1. 旋转函数;
  2. 图匹配;
  3. 形状签名。