我有两套,每套都是一对数字的列表
Set1 =[(x1, y1), (x2, y2), ..., (xN, yN)]
Set2 =[(a1, b1), (a2, b2), ..., (aN, bN)]
如果在XY平面上绘制,则Set1和Set2具有相同的基本形状,但是set2的数据点是set1的旋转/平移/缩放/噪声/偏斜版本。每组内对的排序是随机的。有没有一种有效的方法来确定set1中哪些点与set2中的对应点相对应?
答案 0 :(得分:8)
您正在寻找一系列算法,以尽量减少两点云之间的差异。这是一个相当难以解决的问题,并且可以有多个解决方案(例如,如果给你两个立方体,有许多可能的旋转可以工作)。
一种特别受欢迎的方法是ICP (iterative closest point) algorithm,它以候选猜测开始并持续细化,直到达到某些正确性标准或时间到期。这可能是一个很好的起点。
希望这有帮助!
答案 1 :(得分:1)
是的,假设只有旋转,缩放和翻译,这可以做到(除了“噪音”和“倾斜”部分,我不确定)。
一种方法:
(* - 请注意,反射和/或对称可能会导致旋转部件出现问题。)