From 6c3137a8b5e71785a86e40cc78e0e5748e30ce8f Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Wed, 27 Jun 2012 15:15:32 +0000 Subject: [PATCH] Fixed divide by zero problem in cvStereoRectify (thanks to Philip Van Valkenberg) #2099 --- modules/calib3d/src/calibration.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/calib3d/src/calibration.cpp b/modules/calib3d/src/calibration.cpp index f211c5db8..ffe1c5855 100644 --- a/modules/calib3d/src/calibration.cpp +++ b/modules/calib3d/src/calibration.cpp @@ -2366,7 +2366,8 @@ void cvStereoRectify( const CvMat* _cameraMatrix1, const CvMat* _cameraMatrix2, // calculate global Z rotation cvCrossProduct(&t,&uu,&ww); double nw = cvNorm(&ww, 0, CV_L2); - cvConvertScale(&ww, &ww, acos(fabs(c)/nt)/nw); + if (nw > 0.0) + cvConvertScale(&ww, &ww, acos(fabs(c)/nt)/nw); cvRodrigues2(&ww, &wR); // apply to both views