linear-algebra - 从运动计算结构后旋转矩阵的意义

标签 linear-algebra rotational-matrices

我已经完全实现了该算法,但我对旋转矩阵的工作原理有点困惑。所以你最终得到一个 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/

相关文章:

matrix - 仅一行不同的增量最小二乘法

python - 如何计算python中矩阵的平衡?

c++ - GLM 从 vec3 生成旋转矩阵

ios - 反转 CMRotationMatrix 的一个单轴的旋转

c++ - 在 Opengl 中使用矩阵的正确顺序是什么?

matrix - 为什么使用四元数进行旋转?

c++ - 计算 3x3 对称矩阵谱分解的快速方法

java - Java中的并发访问稀疏矩阵

python - "Cloning"行或列向量

android - 使用磁场计算旋转矩阵