Slight modification to example code for FLANN matcher with comment on #3344
authormoodoki <moo@papermoon>
Wed, 13 Nov 2013 16:22:20 +0000 (00:22 +0800)
committermoodoki <moo@papermoon>
Wed, 13 Nov 2013 16:22:20 +0000 (00:22 +0800)
doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.rst
samples/cpp/tutorial_code/features2D/SURF_FlannMatcher.cpp

index 3bf757f..153fca2 100644 (file)
@@ -81,12 +81,14 @@ This tutorial code's is shown lines below. You can also download it from `here <
      printf("-- Max dist : %f \n", max_dist );
      printf("-- Min dist : %f \n", min_dist );
 
-     //-- Draw only "good" matches (i.e. whose distance is less than 2*min_dist )
+     //-- Draw only "good" matches (i.e. whose distance is less than 2*min_dist,
+     //-- or a small arbitary value ( 0.02 ) in the event that min_dist is very
+     //-- small)
      //-- PS.- radiusMatch can also be used 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 <= max(2*min_dist, 0.02) )
        { good_matches.push_back( matches[i]); }
      }
 
index ead7fd7..0934630 100644 (file)
@@ -65,12 +65,14 @@ int main( int argc, char** argv )
   printf("-- Max dist : %f \n", max_dist );
   printf("-- Min dist : %f \n", min_dist );
 
-  //-- Draw only "good" matches (i.e. whose distance is less than 2*min_dist )
+  //-- Draw only "good" matches (i.e. whose distance is less than 2*min_dist,
+  //-- or a small arbitary value ( 0.02 ) in the event that min_dist is very
+  //-- small)
   //-- PS.- radiusMatch can also be used 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 <= max(2*min_dist, 0.02) )
     { good_matches.push_back( matches[i]); }
   }