我有两组,每组都是一对数字的列表
Set1 =[(x1, y1), (x2, y2), ..., (xN, yN)]
Set2 =[(a1, b1), (a2, b2), ..., (aN, bN)]
如果在 XY 平面上绘制,Set1 和 Set2 具有相同的基本形状,但是 set2 的数据点是 set1 的旋转/平移/缩放/噪声/倾斜版本。每组内的对的顺序是随机的。有没有一种有效的方法来确定 set1 中的哪些点对应于 set2 中的对应点?
您正在寻找一系列算法,试图最小化两个点云之间的差异。这是一个相当难解决的问题,并且可以有多种解决方案(例如,如果给您两个立方体,则有许多可能的旋转有效)。
一种特别流行的方法是ICP(迭代最近点)算法,它从候选猜测开始并不断对其进行改进,直到达到某个正确性标准或时间到期。这可能是一个很好的起点。
希望这可以帮助!
是的,假设只有旋转、缩放和平移可以做到这一点(除了“噪声”和“倾斜”部分,我不确定)。
一种方法:
(*-请注意,反射和/或对称性可能会导致旋转部分出现问题。)