StereoCalibration RMS Problem

asked 2016-09-13 01:39:19 -0600

TiBe gravatar image

Hi guys,

I have a strange Problem. I want to calibrate a vertical stereo camera system.

First I calibrate each camera individually

double rms = calibrateCamera(xObjektPoints, xImageCam1, Size(3000,4000), intrinsic, distCoeffs[0], rvecs1, tvecs1, CV_CALIB_USE_INTRINSIC_GUESS +   CV_CALIB_ZERO_TANGENT_DIST);

double rms2 = calibrateCamera(xObjektPoints, xImageCam2, Size(3000, 4000), intrinsic2, distCoeffs[1], rvecs2, tvecs2, CV_CALIB_USE_INTRINSIC_GUESS +   CV_CALIB_ZERO_TANGENT_DIST);

The RMS are 0,21 and 0,23...thats okay...but now I use stereoCalibrate and the RMS is 24

double rms3 = stereoCalibrate(xObjektPoints, xImageCam1, xImageCam2,
    intrinsic, distCoeffs[0],
    intrinsic2, distCoeffs[1],
    Size(3000, 4000), R, T, E, F,
    TermCriteria(CV_TERMCRIT_ITER + CV_TERMCRIT_EPS, 100, 1e-5)

Can someone help me?


edit retag flag offensive close merge delete



For calibrateCamera, you passed CV_CALIB_USE_INTRINSIC_GUESS that means that you know approximatively the camera intrinsic matrices.

If you do know them, you should pass the same flags to stereoCalibrate.

Another solution is to calibrate each camera individually and use the CV_CALIB_FIX_INTRINSIC flag for stereoCalibrate.

PS: if you don't know the signification of the flags you used, take a look at the documentation.

Eduardo gravatar imageEduardo ( 2016-09-13 03:35:49 -0600 )edit

Thanks for your help.... yes I forgot the flag CV_CALIB_USE_INTRINSIC_GUESS but my great fault was that I reversed two calibration Images :D

Now everything fits....thank you

TiBe gravatar imageTiBe ( 2016-09-13 04:09:21 -0600 )edit