attempt to fix stereobm failures on Mac and Linux

This commit is contained in:
Vadim Pisarevsky 2013-04-04 14:27:11 +04:00
parent 656594ad4f
commit 6aa4f533fa

View File

@ -459,14 +459,29 @@ void CV_StereoMatchingTest::run(int)
continue; continue;
} }
int dispScaleFactor = datasetsParams[datasetName].dispScaleFactor; int dispScaleFactor = datasetsParams[datasetName].dispScaleFactor;
trueLeftDisp.convertTo( trueLeftDisp, CV_32FC1, 1.f/dispScaleFactor ); Mat tmp;
trueLeftDisp.convertTo( tmp, CV_32FC1, 1.f/dispScaleFactor );
trueLeftDisp = tmp;
tmp.release();
if( !trueRightDisp.empty() ) if( !trueRightDisp.empty() )
trueRightDisp.convertTo( trueRightDisp, CV_32FC1, 1.f/dispScaleFactor ); {
trueRightDisp.convertTo( tmp, CV_32FC1, 1.f/dispScaleFactor );
trueRightDisp = tmp;
tmp.release();
}
Mat leftDisp, rightDisp; Mat leftDisp, rightDisp;
int ignBorder = max(runStereoMatchingAlgorithm(leftImg, rightImg, leftDisp, rightDisp, ci), EVAL_IGNORE_BORDER); int ignBorder = max(runStereoMatchingAlgorithm(leftImg, rightImg, leftDisp, rightDisp, ci), EVAL_IGNORE_BORDER);
leftDisp.convertTo( leftDisp, CV_32FC1 );
rightDisp.convertTo( rightDisp, CV_32FC1 ); leftDisp.convertTo( tmp, CV_32FC1 );
leftDisp = tmp;
tmp.release();
rightDisp.convertTo( tmp, CV_32FC1 );
rightDisp = tmp;
tmp.release();
int tempCode = processStereoMatchingResults( resFS, ci, isWrite, int tempCode = processStereoMatchingResults( resFS, ci, isWrite,
leftImg, rightImg, trueLeftDisp, trueRightDisp, leftDisp, rightDisp, QualityEvalParams(ignBorder)); leftImg, rightImg, trueLeftDisp, trueRightDisp, leftDisp, rightDisp, QualityEvalParams(ignBorder));