我已经针对某个世界坐标系校准了 2 个相机。我知道它们每个相对于世界框架的旋转矩阵和平移向量。从这些矩阵如何计算一个相机相对于另一个相机的旋转矩阵和平移向量?
请提供任何帮助或建议。谢谢!
我已经针对某个世界坐标系校准了 2 个相机。我知道它们每个相对于世界框架的旋转矩阵和平移向量。从这些矩阵如何计算一个相机相对于另一个相机的旋转矩阵和平移向量?
请提供任何帮助或建议。谢谢!
这是一个更简单的解决方案,因为您已经有了 3x3 旋转矩阵 R1 和 R2,以及 3x1 平移向量 t1 和 t2。
这些表示从世界坐标系到每个摄像机的运动,即,如果 p 是在世界坐标系中表示的一个点,那么在摄像机 1 帧中表示的同一点是 p1 = R1 * p + t1。
那么,从摄像机 1 到 2 的运动就是(a)从摄像机 1 到世界坐标系的运动和(b)从世界坐标系到摄像机 2 的运动的简单组合。您可以轻松地计算此组合,如下所示:
拥有 Q12 后,您可以根据需要分别从其上部 3x3 子矩阵和右侧 3x1 子列中提取旋转和平移部分。
这是非常简单易行的解决方案。我想你的第一台摄像机有 R1 和 T1,第二台摄像机有 R2 和 T2 旋转矩阵和根据公共参考点的平移向量。
从第一个到第二个相机的平移,从第一个到第二个相机的旋转可以通过以下两行matlab代码计算;
R=R2*R1';
T=T2-R*T1;
但请注意,如果每台相机只有一个 R 和 T,那就是真的。(我的意思是一个独特的世界参考的旋转和平移)。如果您有更多的参考平移和旋转,您应该为每个参考点计算 R,T。他们可能会非常接近彼此。但这些可能略有不同。然后您可以计算平移向量的平均值并将所有找到的旋转矩阵转换为旋转向量,计算其平均值,然后将它们转换为旋转矩阵。