Fixed a bug #2892
authorIvan Korolev <ivan.korolev@itseez.com>
Fri, 14 Jun 2013 04:21:42 +0000 (08:21 +0400)
committerIvan Korolev <ivan.korolev@itseez.com>
Fri, 14 Jun 2013 04:21:42 +0000 (08:21 +0400)
modules/nonfree/src/sift.cpp

index 58ebd31..5a7fd89 100644 (file)
@@ -774,9 +774,6 @@ void SIFT::operator()(InputArray _image, InputArray _mask,
         findScaleSpaceExtrema(gpyr, dogpyr, keypoints);
         KeyPointsFilter::removeDuplicated( keypoints );
 
-        if( !mask.empty() )
-            KeyPointsFilter::runByPixelsMask( keypoints, mask );
-
         if( nfeatures > 0 )
             KeyPointsFilter::retainBest(keypoints, nfeatures);
         //t = (double)getTickCount() - t;
@@ -791,6 +788,9 @@ void SIFT::operator()(InputArray _image, InputArray _mask,
                 kpt.pt *= scale;
                 kpt.size *= scale;
             }
+
+        if( !mask.empty() )
+            KeyPointsFilter::runByPixelsMask( keypoints, mask );
     }
     else
     {