Fixed bug in cv::detail::waveCorrect
authorLeonid Beynenson <Leonid.Beynenson@itseez.com>
Fri, 11 Jul 2014 11:47:41 +0000 (15:47 +0400)
committerLeonid Beynenson <Leonid.Beynenson@itseez.com>
Fri, 11 Jul 2014 11:47:41 +0000 (15:47 +0400)
The function makes wave correction of a stitched panorama.
Earlier it gave wrong results for panorama made from 1 frame.

modules/stitching/src/motion_estimators.cpp

index 98f4ec2..2ba691b 100644 (file)
@@ -589,6 +589,11 @@ void waveCorrect(vector<Mat> &rmats, WaveCorrectKind kind)
 #if ENABLE_LOG
     int64 t = getTickCount();
 #endif
+    if (rmats.size() <= 1)
+    {
+        LOGLN("Wave correcting, time: " << ((getTickCount() - t) / getTickFrequency()) << " sec");
+        return;
+    }
 
     Mat moment = Mat::zeros(3, 3, CV_32F);
     for (size_t i = 0; i < rmats.size(); ++i)