在 MATLAB 立体参数和 OpenCV 立体校正立体校准之间转换

Gnu*_*bie 5 matlab opencv stereoscopy stereo-3d camera-calibration

我希望将 MATLAB 立体参数结构转换为内在和外在矩阵,以在 OpenCV 的立体校正中使用。

如果我理解http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.htmlhttp://mathworks.com/help/vision/ref/stereoparameters-class.html、stereoParameters.CameraParameters1 和stereoParameters .CameraParameters2 存储内部矩阵,而stereoParameters 的其他成员存储外部矩阵。

我想我得到了这个映射

内在:

  • cameraMatrix1 =stereoParameters.CameraParameters1.IntrinsicMatrix'
  • cameraMatrix2 =stereoParameters.CameraParameters2.IntrinsicMatrix'
  • distCoeffs1 = [stereoParameters.CameraParameters1.RadialDistortion(1:2),stereoParameters.CameraParameters1.TangentialDistortion,stereoParameters.CameraParameters1.RadialDistortion(3)]
  • distCoeffs2 = [stereoParameters.CameraParameters2.RadialDistortion(1:2),stereoParameters.CameraParameters2.TangentialDistortion,stereoParameters.CameraParameters2.RadialDistortion(3)]

外在:

  • R =stereoParameters.RotationOfCamera2'
  • T =stereoParameters.TranslationOfCamera2'

到目前为止,这是正确的吗?

还是看不懂怎么获取

  • R1 (3x3)
  • R2 (3x3)
  • P1 (3x4)
  • P2 (3x4)
  • Q (4x4)

来自其余立体参数的矩阵。

是否有我可以使用的现有转换器,如果没有,公式是什么?

Gnu*_*bie 0

/sf/answers/1982248901/给出了 Q 矩阵的公式:

Q公式

Tx 来自矩阵 T。cx、cy 和 cx' 来自相机矩阵。f 是它们的 x 和 y 焦距的合理组合。

但仍然不知道如何获得 P1、P2、R1 和 R2。有人吗?