flags |= CV_CALIB_FIX_K3;
flags |= CV_CALIB_FIX_K4 | CV_CALIB_FIX_K5 | CV_CALIB_FIX_K6;
}
+ const double minValidAspectRatio = 0.01;
+ const double maxValidAspectRatio = 100.0;
// 1. initialize intrinsic parameters & LM solver
if( flags & CV_CALIB_USE_INTRINSIC_GUESS )
A[8] = 1.;
if( flags & CV_CALIB_FIX_ASPECT_RATIO )
+ {
aspectRatio = A[0]/A[4];
+
+ if( aspectRatio < minValidAspectRatio || aspectRatio > maxValidAspectRatio )
+ CV_Error( CV_StsOutOfRange,
+ "The specified aspect ratio (= cameraMatrix[0][0] / cameraMatrix[1][1]) is incorrect" );
+ }
cvConvert( distCoeffs, &_k );
}
else
{
aspectRatio = cvmGet(cameraMatrix,0,0);
aspectRatio /= cvmGet(cameraMatrix,1,1);
- if( aspectRatio < 0.01 || aspectRatio > 100 )
+ if( aspectRatio < minValidAspectRatio || aspectRatio > maxValidAspectRatio )
CV_Error( CV_StsOutOfRange,
- "The specified aspect ratio (=A[0][0]/A[1][1]) is incorrect" );
+ "The specified aspect ratio (= cameraMatrix[0][0] / cameraMatrix[1][1]) is incorrect" );
}
cvInitIntrinsicParams2D( matM, _m, npoints, imageSize, &matA, aspectRatio );
}