Fixes bug #3071.
authorSergei Nosov <sergei.nosov@gmail.com>
Thu, 13 Jun 2013 07:51:45 +0000 (11:51 +0400)
committerSergei Nosov <sergei.nosov@gmail.com>
Thu, 13 Jun 2013 07:51:45 +0000 (11:51 +0400)
If we have perfect matches (min_dist == 0.0), then strict comparison
fails. Making it non-strict results in treating perfect matches as
good.

doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.rst
samples/cpp/tutorial_code/features2D/SURF_FlannMatcher.cpp

index 47eafed..54d2889 100644 (file)
@@ -85,7 +85,7 @@ This tutorial code's is shown lines below. You can also download it from `here <
      std::vector< DMatch > good_matches;
 
      for( int i = 0; i < descriptors_1.rows; i++ )
-     { if( matches[i].distance < 2*min_dist )
+     { if( matches[i].distance <= 2*min_dist )
        { good_matches.push_back( matches[i]); }
      }
 
@@ -127,6 +127,3 @@ Result
    .. image:: images/Feature_FlannMatcher_Keypoints_Result.jpg
       :align: center
       :height: 250pt
-
-
-
index f4cde9b..ead7fd7 100644 (file)
@@ -70,7 +70,7 @@ int main( int argc, char** argv )
   std::vector< DMatch > good_matches;
 
   for( int i = 0; i < descriptors_1.rows; i++ )
-  { if( matches[i].distance < 2*min_dist )
+  { if( matches[i].distance <= 2*min_dist )
     { good_matches.push_back( matches[i]); }
   }