先执行平移再旋转时,相机外参矩阵如何计算?
要推导先平移后旋转对应的相机外参矩阵,我们可以从变换的数学逻辑出发,结合你给出的变换细节来拆解:
变换步骤与数学展开
先平移后旋转的完整流程是:
- 世界坐标系中的3D点 ( A = [x, y, z]^T ) 先沿平移向量 ( t = [t_1, t_2, t_3]^T ) 平移,得到 ( A + t = [x+t_1, y+t_2, z+t_3]^T )
- 对平移后的点应用旋转矩阵 ( R )(3×3),最终相机坐标系下的点为 ( R(A + t) )
将这个变换展开后可得:
[
R(A + t) = RA + Rt
]
转换为齐次外参矩阵形式
为了和先旋转后平移的外参矩阵形式统一(采用齐次坐标表示),我们可以构造如下4×4的齐次矩阵:
[
E_{tr} = \begin{bmatrix}
R & Rt \
0_{1×3} & 1
\end{bmatrix}
]
验证一下:用该矩阵乘以齐次点 ( [x, y, z, 1]^T ),计算结果为:
[
E_{tr} \cdot \begin{bmatrix}x \ y \ z \ 1\end{bmatrix} = \begin{bmatrix}
R\begin{bmatrix}x \ y \ z\end{bmatrix} + Rt \
1
\end{bmatrix} = \begin{bmatrix}
R(A + t) \
1
\end{bmatrix}
]
完全匹配先平移后旋转的变换结果。
结合你给出的x轴分量例子:
( v_{xtr} = r_{11}(x+t_1) + r_{12}(y+t_2) + r_{13}(z+t_3) )
展开后为 ( r_{11}x + r_{12}y + r_{13}z + (r_{11}t_1 + r_{12}t_2 + r_{13}t_3) ),其中后半部分就是 ( Rt ) 的x轴分量,和上述外参矩阵的平移部分完全对应。
总结
先平移后旋转对应的相机外参矩阵,其旋转部分仍为原旋转矩阵 ( R ),平移部分则是原平移向量 ( t ) 经过旋转矩阵 ( R ) 变换后的结果 ( Rt ),最终齐次外参矩阵形式为 ( \begin{bmatrix}R & Rt \ 0 & 1\end{bmatrix} )。
内容的提问来源于stack exchange,提问作者John Pekl

