从一个点集到另一个点集的最佳映射算法

时间:2014-08-28 20:36:26

标签: algorithm computational-geometry

我有两个点集A = {a1,a2,...,am}和B = {b1,b2,...,bn}(m> = n),并且想要找到一个注射图f从B到A,使得它最小化每对点bi和f(bi)之间的距离之和。 A或B中可能存在重复点。是否有人熟悉与此相关的某些算法?

谢谢,

尼科

2 个答案:

答案 0 :(得分:2)

最小权重匹配的Hungarian algorithm在这里比迭代最近点更适用,因为地图f是单射入A而不是等距。在距离A的所有点处设置m-n个虚拟点,以匹配A中与B中的点不匹配的点。

答案 1 :(得分:1)

您可能需要查看iterative closest point algorithm,其中(我相信)是用于解决此问题的标准算法之一。它的工作原理是通过将一个云中的每个点映射到另一个云中的最近点进行初始猜测,计算转换或旋转以使一个点云与另一个更加一致,然后重复此过程。如果你很好奇,也可以在网上找到这种算法的几种实现方式。

希望这有帮助!