Prevent empty _Jo matrix multiplication when using calibrateCameraRO with iFixedPoint > 0
authorMatt Bennett <m.bennett@uncrewed.tech>
Wed, 4 Sep 2019 14:33:03 +0000 (15:33 +0100)
committerMatt Bennett <m.bennett@uncrewed.tech>
Wed, 4 Sep 2019 14:33:03 +0000 (15:33 +0100)
modules/calib3d/src/calibration.cpp

index ace1322..b663a63 100644 (file)
@@ -1588,7 +1588,7 @@ static double cvCalibrateCamera2Internal( const CvMat* objectPoints,
     Mat _Je( maxPoints*2, 6, CV_64FC1 );
     Mat _err( maxPoints*2, 1, CV_64FC1 );
 
-    const bool allocJo = (solver.state == CvLevMarq::CALC_J) || stdDevs;
+    const bool allocJo = (solver.state == CvLevMarq::CALC_J) || stdDevs || releaseObject;
     Mat _Jo = allocJo ? Mat( maxPoints*2, maxPoints*3, CV_64FC1, Scalar(0) ) : Mat();
 
     if(flags & CALIB_USE_LU) {