An another improvement?
authorlaurentBerger <laurent.berger@univ-lemans.fr>
Sat, 9 May 2015 08:29:53 +0000 (10:29 +0200)
committerlaurentBerger <laurent.berger@univ-lemans.fr>
Sat, 9 May 2015 08:29:53 +0000 (10:29 +0200)
samples/cpp/matchmethod_orb_akaze_brisk.cpp

index 7b595b5..4e3884d 100644 (file)
@@ -97,12 +97,18 @@ int main(int argc, char *argv[])
             // Match method loop
             for (itMatcher = typeAlgoMatch.begin(); itMatcher != typeAlgoMatch.end(); itMatcher++){
                 descriptorMatcher = DescriptorMatcher::create(*itMatcher);
-                if ((*itMatcher == "BruteForce-Hamming" || *itMatcher == "BruteForce-Hamming(2)") && (b->descriptorType() == CV_32F || b->defaultNorm() <= NORM_L2SQR) )
+                if ((*itMatcher == "BruteForce-Hamming" || *itMatcher == "BruteForce-Hamming(2)") && (b->descriptorType() == CV_32F || b->defaultNorm() <= NORM_L2SQR))
                 {
                     cout << "**************************************************************************\n";
                     cout << "It's strange. You should use Hamming distance only for a binary descriptor\n";
                     cout << "**************************************************************************\n";
                 }
+                if ((*itMatcher == "BruteForce" || *itMatcher == "BruteForce-L1") && (b->defaultNorm() >= NORM_HAMMING))
+                {
+                    cout << "**************************************************************************\n";
+                    cout << "It's strange. You shouldn't use L1 or L2 distance for a binary descriptor\n";
+                    cout << "**************************************************************************\n";
+                }
                 try
                 {
                     descriptorMatcher->match(descImg1, descImg2, matches, Mat());