计算两组未配合点之间的仿射转换
我有两组点P和Q,其中Q是P的转换(旋转,翻译和缩放)。点配对是未知的。我将如何计算转换的估计值?
I have two sets of points, P and Q, where Q is a transformation of P (rotation, translation and scaling). The pairing of points is unknown. How would I go about computing an estimate of the transform?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的点云确实很相似,则可以
将它们集中在其质心上,
重新列出它们,以使与原点的平均距离为单位,
旋转它们,以便其惯性椭圆的主轴是水平的。
然后,它们将完美重叠。可以从角度,尺度和翻译向量之间的差异中检索转换。
不幸的是,当惯性的两个轴的长度相同时,此方法却缺乏。在这种情况下,您可以尝试其他时刻,但是我不能给您防弹过程(主要原因是在对称的情况下,不能独特地确定旋转)。
如果两个点云显着非相似,则以上将失败。您可以通过匹配两个随机的点,计算相似性转换和总匹配误差(或从此暂定转换执行完整的ICP)来尝试使用RANSAC方法。
If your point clouds are truly similar, you can
center them on their centroid,
rescale them so that the average distance to the origin is unit,
rotate them so that the main axis of their ellipse of inertia is horizontal.
Then they will perfectly overlap. The transformation can be retrieved from the difference between the angles, scales and translation vectors.
Unfortunately, this method falls short when the two axis of inertia have the same length. In such a case you can try other moments, but I can't give you a bulletproof procedure (the main reason is that in symmetrical cases, the rotation cannot be uniquely determined).
If the two point clouds are significantly non-similar, the above will fail. You can try a RANSAC approach instead, by matching two random pairs of points, computing the similarity transformation and the total matching error (or perform full ICP from this tentative transformation).