Я хочу преобразовать структуру MATLAB StereoParameters во внутренние и внешние матрицы для использования в StereoRectify OpenCV.
Если я правильно понял http://docs.opencv.org/2.4/modules/calib3d/doc/camera_dication_and_3d_reconstruction.html и http://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), стереопараметры.CameraParameters1.TangentialDistortion, стереопараметры.CameraParameters1.RadialDistortion(3)]
- distCoeffs2 = [stereoParameters.CameraParameters2.RadialDistortion(1:2), стереопараметры.CameraParameters2.TangentialDistortion, стереопараметры.CameraParameters2.RadialDistortion(3)]
Внешние:
- R = стереопараметры.RotationOfCamera2'
- T = стереопараметры.TranslationOfCamera2'
Пока это правильно?
Тем не менее, я не вижу, как получить
- R1 (3x3)
- R2 (3x3)
- P1 (3x4)
- P2 (3x4)
- Q (4x4)
матрицы из остальных стереопараметров.
Есть ли существующий конвертер, который я могу использовать, и если нет, то какие формулы?