1
votes

I have a stereo camera rig. I have captured a chessboardPattern sequence (the same sequence, two pictures per exposure). I have performed a single camera calibration on the individual cameras using cv2.calibrateCamera.

My question is, is running a cv2.stereoCalibrate on both cameras redundant, given that calibrateCamera has provided me with object-relative position and orientation of the individual cameras? If not, what benefits does it provide me with?

1

1 Answers

1
votes

The intrinsic parameters are generated in both cv2.stereoCalibrate and cv2.calibrateCamera using the same function 'cvCalibrateCamera2', the difference being in cv2.stereoCalibrate you disable can this calculation using the flags.

'No', this functionality is not redundant because the extrinsic parameters are calculated in a different manner. What calibrateCamera does for you as demonstrated in this tutorial is how to find 3D points using a single camera over multiple frames, which is what a stereo camera can do in a single frame (taken by both cameras). In stereoCalibrate, the extrinsic parameters are generated with respect to both the cameras.

Since you already have a stereo rig, use stereoCalibrate to get the intrinsic and extrinsic parameters. This page has information about how to use those parameters to create a depth map.

OpenCV Documentation