Transformation from Cam1 to Cam2 doesn't describe the real world

as43
Wed, 19 Jun 2024 14:47:21 +0000
Python

I a got stereo pair of cameras: camera 1 and camera2. Camera 2 is to the right of camera 1. I want to calibrate them to get the relativ position from cam1 to cam2 using the stereoCalibrate() function. Therefore I use a checkerboard (7,11) with a side length of 5 mm. The corners are find by the method findChessboardCornersSB() (OpenCV: Camera Calibration and 3D Reconstruction) for images taken by cam1 and cam2. I am using the same pictures to calibrate cam1 and cam2 separately using the function calibrateCamera() to get the intrinsic camera parameters + distortion coefficients.
After I calibrated the cameras, I calibrate the stereo pair. I dont missmatch images taken by cam1 with images taken by cam2. The result of the calibration is the following:

reprojection error: 1.19

R: array([[ 9.99977975e-01, -2.40794135e-04, -6.63262402e-03],
[ 3.67111980e-04, 9.99818459e-01, 1.90502994e-02],
[ 6.62683273e-03, -1.90523147e-02, 9.99796526e-01]])

T: array([[-65.23586202],
[ 0.84279578],
[ 4.82012402]])

The question is, why is T[0] negativ? It doesnt reflect the real world. Cam2 is to the right of cam1, so it should be at least positiv. +6.5cm could be the case.

Thanks in advance!

11 posts - 3 participants