Algorithm 三维刚性配准-最小点解析解-如何建立旋转矩阵?

Algorithm 三维刚性配准-最小点解析解-如何建立旋转矩阵?,algorithm,matrix,registration,algebra,Algorithm,Matrix,Registration,Algebra,我有两组三个(非共线)点,在三维空间中。我知道点之间的对应关系,即集合1是{A,B,C},集合2是{A',B',C} 我想找到将A'转换为A、B'转换为B、C'转换为C的平移和旋转组合。注意:不涉及缩放。(我肯定知道这一点,但我很好奇,如果它确实存在,该如何处理。) 我花了一段时间研究如何做到这一点。第2节(第3页)“三点注册”似乎是我需要做的。我对第1步到第4步和第6步到第7步的理解很好,但第5步让我感到困惑 5. Build the rotation matrices for both po

我有两组三个(非共线)点,在三维空间中。我知道点之间的对应关系,即集合1是{A,B,C},集合2是{A',B',C}

我想找到将A'转换为A、B'转换为B、C'转换为C的平移和旋转组合。注意:不涉及缩放。(我肯定知道这一点,但我很好奇,如果它确实存在,该如何处理。)

我花了一段时间研究如何做到这一点。第2节(第3页)“三点注册”似乎是我需要做的。我对第1步到第4步和第6步到第7步的理解很好,但第5步让我感到困惑

5. Build the rotation matrices for both point sets:
    Rl = [xl, yl, zl], Rr = [xr, yr, zr]
我该怎么做

稍后我计划实施最小二乘法解决方案,但我想先这样做。

似乎有该部分的相同副本,但接下来是一个工作示例。我必须承认,我仍然不清楚这一步是如何工作的,但你可能会发现它比我更清楚

更新:Rl的第1列是先前构造的x轴(就原始轴而言为[0,1,0])。所以我想象x,y和z是轴,作为列向量。这是有道理的。。。我假设Rr在另一个坐标系中是相同的


明白了吗?

我要试试看

每个点得到一个方程:a_1x+b_1y+c_1z=d_1,对,所以做2个3x3矩阵 a、 b,c值

然后,由于每个点彼此独立,可以求解两个矩阵A和A’之间的变换

T A=A' 经过一些线性代数之后

T=A'存货(A)


在MATLAB中尝试一下,让我们知道

我刚刚在MATLAB中试过,它通过虚拟点和比例与旋转相结合的方式对我有效。配准通常指的是对齐两幅图像,涉及的不仅仅是变换的求解。通常,将图像从wrt移动到参考,并应用代价函数。这将求解从a到a的线性映射。对于3个点,这样的地图始终存在。但是线性贴图与旋转+平移不同:它没有平移组件。它还可能包含反射、剪切、拉伸等。仿射变换是线性的,因为它们使用0 0 1的额外行,忘记了这是什么。9度变换、缩放、旋转和平移有一个倒数,只有剪切断裂才是倒数。仿射变换有12个自由度,仅此而已。反射是旋转。工作示例ftw!谢谢,这确实有道理。(是的,Rr在其他坐标系中是相同的。)