如何从两个外在相机矩阵中导出相对平移和旋转?

时间:2015-07-29 18:51:56

标签: opencv computer-vision perspectivecamera

我有两组与视频序列相关的数据。一个包含使用一种算法生成的相对旋转和平移数据。另一个由与每个帧相关的地面真实外在矩阵组成。

我想比较数据集以确定它们之间的差异。我的问题是,如何从两个外在相机矩阵中推导出相对平移和旋转?

2 个答案:

答案 0 :(得分:1)

如果camera1姿势P1 = [R1|T1]camera2姿势P2 = [R2|T2],那么P1to2 = P2 * P1^-1

直观地想象一个简单的情况,其中两个摄像机都有零平移,camera1在X轴上旋转+30度,在X轴上旋转camera2 +60度。

P1 = [R1|0] P2 = [R2|0]

因此它们在X轴上的旋转均为+30度:

P1to2 = P2 * P1^-1 = [R2|0] * [R1|0]^-1 = [R2|0] * [R1^1|0]

R2 * R1^1 = 60 - 30 on X = rotation of +30 degrees on X

答案 1 :(得分:0)

外在矩阵由旋转矩阵3x3和平移向量3x1组成。

所以,M 3x4,只是两个[R t]的串联。除非我误解了你的问题,否则获得轮换和翻译是微不足道的。