Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 一个点集到另一个点集的最佳映射算法_Algorithm_Computational Geometry - Fatal编程技术网

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

Algorithm 一个点集到另一个点集的最佳映射算法,algorithm,computational-geometry,Algorithm,Computational Geometry,我有两个点集A={a1,a2,…,am}和B={b1,b2,…,bn}(m>=n),我想找到一个从B到A的注入映射f,使得每对点bi和f(bi)之间的距离之和最小。A或B中可能存在重复点。是否有人熟悉与此相关的算法 谢谢 Niko你可能想研究一下,它(我相信)是用来解决这个问题的标准算法之一。它的工作原理是通过将一个云中的每个点映射到另一个云中最近的点来进行初始猜测,计算变换或旋转以使一个点云与另一个点云更加对齐,然后重复此过程。如果你好奇的话,也可以在网上找到这个算法的几个实现 希望这有帮助

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

谢谢


Niko

你可能想研究一下,它(我相信)是用来解决这个问题的标准算法之一。它的工作原理是通过将一个云中的每个点映射到另一个云中最近的点来进行初始猜测,计算变换或旋转以使一个点云与另一个点云更加对齐,然后重复此过程。如果你好奇的话,也可以在网上找到这个算法的几个实现


希望这有帮助

这里,最小权重匹配比迭代最近点更适用,因为映射f是内射到A而不是等距的。在距离A中所有点0处创建m-n虚拟点,以匹配A中与B中点不匹配的点。

到目前为止您尝试了什么?如果允许重复点,为什么不总是选择最短的可用点对。啊,我忽略了一个事实,即所需的只是注射,而不是双注射。好球!