如何将世界空间相机方向和位置矢量更改为相机空间?

时间:2015-04-18 17:30:37

标签: opencv math computer-vision

我的问题正好与How to determine world coordinates of a camera?相反。

如果R和t是摄像机在世界空间中的方向和位置矢量?如何轻松地将rvec and tvec转换回相同的空间?

1 个答案:

答案 0 :(得分:2)

如果您说世界空间中确实有Rt,那么这不是很准确。

但是,我们假设R和t(3x3旋转矩阵和3x1平移向量)表示用于将世界空间中的点Xw转换为相机空间中的点{{1}的方向和平移{{ 1}}(没有 homogeneuos坐标):

Xc

这些是 Xc = R*Xw + t R,它们是投影矩阵P的一部分(适用于齐次坐标)和this的结果(见底部注释):

t

P = K[R|t] 是相机领域的世界起源。

反之,将相机空间中的一个点转换为世界空间,可以很容易地导出,因为正交矩阵t的倒数是R(R转置):

R'

正如您所见, Xw = R'*Xc - R't (3x3矩阵)和R'(3x1矢量)现在是分别用于从相机转换到世界空间的平移矢量的方向矩阵(更精确- R't是世界空间中的相机原点/中心通常称为- R't)。

注意:C采用旋转向量的形式,您可能知道solvePnP用于在两种表示之间切换。