【发布时间】:2015-07-29 18:51:56
【问题描述】:
我有两组与视频序列相关的数据。一个包含使用一种算法生成的相对旋转和平移数据。另一个由与每一帧相关联的真实外在矩阵组成。
我想比较数据集以确定它们之间的差异。我的问题是,如何从两个外部相机矩阵中推导出相对平移和旋转?
【问题讨论】:
标签: opencv computer-vision perspectivecamera
我有两组与视频序列相关的数据。一个包含使用一种算法生成的相对旋转和平移数据。另一个由与每一帧相关联的真实外在矩阵组成。
我想比较数据集以确定它们之间的差异。我的问题是,如何从两个外部相机矩阵中推导出相对平移和旋转?
【问题讨论】:
标签: opencv computer-vision perspectivecamera
如果你有camera1 姿势P1 = [R1|T1] 和camera2 姿势P2 = [R2|T2] 然后P1to2 = P2 * P1^-1。
直观地,想象一个简单的情况,其中两个相机的平移都为零,camera1 在 X 轴上旋转 +30 度,camera2 在 X 轴上旋转 +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
【讨论】:
外在矩阵由 3x3 的旋转矩阵和 3x1 的平移向量组成。
因此,M 3x4 只是两个 [R t] 的串联。除非我误解了你的问题,否则旋转和翻译是微不足道的。
【讨论】: