【问题标题】:camera translation vector - relation to rotation matrix相机平移向量 - 与旋转矩阵的关系
【发布时间】:2011-01-25 02:57:06
【问题描述】:

我正在使用一些代码,它输出一个 3x3 旋转矩阵和一个表示相机方向和位置的平移向量。

但是,文档指出,要获得相机的位置,必须将转置和反转的旋转矩阵乘以平移向量。这是否意味着原始向量不是相机的位置?如果不是,那个原始向量代表什么?

【问题讨论】:

    标签: math 3d geometry computer-science computer-vision


    【解决方案1】:

    我假设您获得的 R(旋转矩阵)和 t(平移向量)是一个以(0,0,0) 为原点的世界坐标系.

    使用 Rt 您现在可以将点从世界坐标系 (WC) 移动到相机坐标系 (CC),即 Xc = RX + t 其中 XWC中的 3D 点> 和 XcCC 中是 X (即从相机的角度来看)。假设我们正在处理刚体,这是适用的,因此我们只需旋转点然后平移它。

    现在,您需要找到相机中心的坐标,即CC的原点,或者当Xc = 0时:

    0 = RC + t 其中CWC 中相机中心的3D 坐标。通过求解 C 我们得到,

    C = -R-1t

    顺便说一句,

    文档中的更正

    转置乘以旋转矩阵不会改变旋转矩阵 --- 旋转矩阵是正交的,这意味着 它的转置等于它的逆,因此,(RT)-1 = R.

    【讨论】:

    • opencv 中E = cv::findEssentialMat() 的结果在两个连续帧之间返回Rt。你怎么能从这个逻辑中获得相机中心?
    【解决方案2】:

    这种情况下的原始向量很可能是平移后坐标中的平移向量。或者之前 - 这完全取决于您的个人观点。

    问题是,你有两个坐标系,每个向量都可以在每个坐标系中表示。旋转矩阵允许您将事物从一个系统转换到另一个系统。 “将转置和反转的旋转矩阵乘以”就是反向变换。

    【讨论】:

    • 相机和世界这两个坐标系是什么?如果是这样,在相机空间中,平移向量不会简单地为零吗?
    • 相机和世界——很可能是的。旋转不能改变向量的长度——所以如果有任何平移,它在所有空间中都将是非零的。
    • 抱歉,我不明白相机的位置如何在相机空间中不为零。根据定义,相机空间中的原点不是相机的位置吗?
    • 我没有说相机的位置在相机空间中可以是非零的。但是平移向量在相机空间中也很有意义——它指向相对于相机的世界原点。
    猜你喜欢
    • 2013-12-06
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2017-10-14
    • 2012-09-09
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多