StereoCalibrate and StereoRectify with different resolutions

ConnorM
Fri, 08 Jul 2022 17:30:52 +0000
Python

I have an optical (1440x1080) camera and infrared (640x512) camera that I want to use as a stereo pair. For calibration I have obtained the intrinsic parameters separetely with very low reprojection error (0.10 or less). Next, I want to run cv2.stereocalibrate and cv2.stereorectify to obtain a disparity (Q matrix) for the stereo pair.

I have obtained a synchronized video with the cameras both seeing several different poses of the chessboard. However, I want to make sure that my understanding is correct.

As I have two different resolutions, should I scale down the optical camera’s (1440x1080) images AND camera matrix (with cv2.getOptimalNewCameraMatrix) to a new size of (640x512) and then run chessboard detection and pass the corners to stereocalibrate and stereorectify using the new scaled camera matrix?

If not, what should the process be to account for the change in resolution? So far I am not getting great results after the stereo calibration procedure, but I’d like to verify my process first.

10 posts - 4 participants