我有两组3D点(原始的和重构的)和关于对的对应信息--从一组中的点代表第二组。我需要找到3D平移和缩放因子来转换重建集,使平方距离之和最小(旋转也很好,但是点也是同样旋转的,所以这不是主要的优先级,为了简单和速度,这可能被省略)。所以我的问题是--这个问题在互联网上得到解决了吗?就我个人而言,我会使用最小二乘法,但我没有太多的时间(虽然我有点擅长数学,但我不经常使用它,所以最好避免它),所以如果它存在的话,我想使用别人的解决方案。我更喜欢C++中的解决方案,例如使用OpenCV,但是算法本身就足够好了。
如果没有这样的解决方案,我会自己计算,我不想打扰你这么多。
解决方案:(来自您的答案)
对我来说,这是一种卡布希算法;
基本信息:算法
通用解决方案:id=671
还没有解决:我也需要规模。SVD的标度值对我来说是不可理解的;当我需要所有轴的1-4标度时(据我估计),SVD的标度约为2000,200,20,这一点也没有帮助。
发布于 2015-07-28 07:37:26
如果你的点在所有方向上都是一致的(我也不能理解SVD-s标度矩阵),就可以在没有SVD的情况下推断出尺度。下面是我如何解决同样的问题:
现在,您可以使用标度值来缩放所有重建的点,然后继续估计旋转。
提示:如果点云中有太多的点来找出它们之间的距离,那么一个较小的距离子集也会工作,只要这两个点云的子集是相同的。理想情况下,在没有测量噪声的情况下,只有一个距离对才能工作,例如,当一个点云是直接从另一个点云旋转而来的时候。
https://stackoverflow.com/questions/13432805
复制相似问题