我正在处理一些输出3x3旋转矩阵和表示摄像机方向和位置的平移向量的代码。
然而,文档指出,要获得相机的位置,必须将转置和反转的旋转矩阵乘以平移向量。这是否意味着原始矢量不是相机的位置?如果没有,原始矢量代表什么?
答案 0 :(得分:8)
我假设你获得的 R (旋转矩阵)和 t (翻译向量)是一个世界坐标系,(0,0,0)
为起源。
使用 R 和 t ,您现在可以将一个点从世界坐标系( WC )移动到摄像机坐标系( CC ),即 X c = RX + t 其中 X 是 WC中的3D点和 X c 在 CC 中是 X (即从相机的角度看)。这是适用的,假设我们正在处理刚体,所以我们只是旋转点然后翻译它。
现在,您需要找到摄像机中心的坐标,它是 CC 的原点,或者当 X c = 0 时:
0 = RC + t 其中 C 是中相机中心的3D坐标WC 。通过求解 C ,我们得到了,
C = -R -1 t
顺便说一句,
转置和乘以旋转矩阵不会改变旋转矩阵---旋转矩阵是正交的,这意味着它的转置等于其反向因此,< em>(R T ) -1 = R 。
答案 1 :(得分:0)
在这种情况下,原始矢量可能是翻译后坐标中的平移矢量。或者也许之前 - 这一切都取决于你个人的观点。
问题是,你有两个坐标系,每个矢量都可以在每个坐标系中表示。旋转矩阵允许您将事物从一个系统转换为另一个系统。 “将转置和反转的旋转矩阵相乘”是向后变换。