我已经完全实现了该算法,但我对旋转矩阵的工作原理有点困惑。所以你最终得到一个 3xP 的“结构”矩阵,内容(如果我是正确的)是 P 3D 点(所以行是 x、y、z)。
但是旋转矩阵是 2fx3。 F 是帧数,因为最初我们将 3 帧跟踪特征点堆叠到一个矩阵中。它是 2f,因为上半部分是 x 坐标,下半部分是 y 坐标。
无论如何,得到的矩阵是这个 2fx3 并且看起来你有 2 个旋转矩阵,所以我有点困惑它如何对应于正常的旋转矩阵
这是该算法的简短概述 http://www.cs.huji.ac.il/~csip/sfm.pdf
最佳答案
我其实已经找到答案了。正如我所说,R 矩阵的大小为 2fx3,我很困惑它如何对应于正常的 3x3 旋转矩阵。事实证明,由于 R 是堆叠的,因此您有
r1x
r2x
r3x
r1y
r2y
r3y
其中每一行都是一个 1x3 向量,对应于普通旋转矩阵中的一行,以获取从初始点到新点的旋转,您将相应的 r 行作为 x,y 并交叉它们以获得 z。因此,要获得第一帧的旋转矩阵,它将是 (每个都是 1x3 向量)
r1x
r1y
cross(r1x, r1y)
关于linear-algebra - 从运动计算结构后旋转矩阵的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384987/