通过 3 点相关性对齐点云?
题
假设我有 3 个点云:第一个点云有 3 个点 {x1,y1,z1}、{x2,y2,z2}、{x3,y3,z3},第二个点云具有与 {xx1, yy1, zz1}、{xx2,yy2} 相同的点, zz2}, {xx3,yy3,zz3}...我假设将第二个点云与第一个点云对齐,我必须将第二个点云乘以 T[3x3matrix]。
1)那么我如何找到这个变换矩阵(T)?我尝试手工解方程,但未能解出它们。有没有解决方案,因为我很确定我不是第一个遇到这个问题的人。
2)我假设矩阵可能包括倾斜和剪切。有没有办法找到只有 7 个自由度的矩阵(3 个平移,3 个旋转,1 个尺度)?
解决方案
将单位向量 {1, 0, 0}、{0, 1, 0} 和 {0, 0, 1} 转换为 {x1, y1, z1}、{x2, y2, z2} 的变换矩阵 T1, {x3, y3, z3} 很简单
| x1 x2 x3 | T1 = | y1 y2 y3 | | z1 z2 z3 |
同样,将这 3 个单位向量转换为第二组点的变换 T2 为
| xx1 xx2 xx3 | T2 = | yy1 yy1 yy3 | | zz1 zz2 zz3 |
因此,取前三个点到后三个点的矩阵由 T2 * T1 给出-1. 。如果 T1 是非奇异的,则该变换是唯一确定的,因此它没有自由度。如果 T1 是奇异矩阵,则可能没有解,或者可能有无穷多个解。
当你说你想要 7 个自由度时,这在某种程度上是对术语的误用。一般情况下,该矩阵由 3 个旋转自由度、3 个缩放自由度和 3 个剪切自由度组成,总共 9 个。您可以通过执行以下操作来找出这些参数 QR 分解. 。Q 矩阵提供旋转参数,R 矩阵提供缩放参数(沿对角线)和剪切参数(对角线上方)。
其他提示
亚当罗森菲尔德的方法是正确的。但溶液作为T2 * INV(T1)是错误的。由于在矩阵乘法A * B = B * A:因此结果是INV(T1)* T2
下面是计算所述参数的最小二乘估计的示例在R中一个2D仿射变换。