add rotation tests for the descriptors
authorVincent Rabaud <vrabaud@willowgarage.com>
Fri, 24 Aug 2012 01:42:58 +0000 (03:42 +0200)
committerVadim Pisarevsky <vadim.pisarevsky@itseez.com>
Thu, 30 Aug 2012 12:28:39 +0000 (16:28 +0400)
modules/features2d/src/brisk.cpp
modules/features2d/test/test_rotation_and_scale_invariance.cpp

index 415ed78..8d5fe0d 100755 (executable)
@@ -530,6 +530,9 @@ BRISK::operator()( InputArray _image, InputArray _mask, vector<KeyPoint>& keypoi
                    OutputArray _descriptors, bool useProvidedKeypoints) const
 {
   Mat image = _image.getMat(), mask = _mask.getMat();
+  if( image.type() != CV_8UC1 )
+      cvtColor(image, image, CV_BGR2GRAY);
+
   if (!useProvidedKeypoints)
     detectImpl(image, keypoints, mask);
 
index 48dddd3..ac30946 100644 (file)
@@ -592,6 +592,15 @@ protected:
 /*
  * Detector's rotation invariance check
  */
+
+TEST(Features2d_RotationInvariance_Detector_BRISK, regression)
+{
+    DetectorRotationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.BRISK"),
+                                        0.32f,
+                                        0.81f);
+    test.safe_run();
+}
+
 TEST(Features2d_RotationInvariance_Detector_ORB, regression)
 {
     DetectorRotationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"),
@@ -603,6 +612,16 @@ TEST(Features2d_RotationInvariance_Detector_ORB, regression)
 /*
  * Descriptors's rotation invariance check
  */
+
+TEST(Features2d_RotationInvariance_Descriptor_BRISK, regression)
+{
+    DescriptorRotationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.BRISK"),
+                      Algorithm::create<DescriptorExtractor>("Feature2D.BRISK"),
+                        NORM_HAMMING,
+                                          0.99f);
+    test.safe_run();
+}
+
 TEST(Features2d_RotationInvariance_Descriptor_ORB, regression)
 {
     DescriptorRotationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"),
@@ -625,6 +644,14 @@ TEST(Features2d_RotationInvariance_Descriptor_ORB, regression)
  * Detector's scale invariance check
  */
 
+//TEST(Features2d_ScaleInvariance_Detector_BRISK, regression)
+//{
+//    DetectorScaleInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.BRISK"),
+//                                     0.09f, 
+//                                     0.52f);
+//    test.safe_run();
+//}
+
 //TEST(Features2d_ScaleInvariance_Detector_ORB, regression)
 //{
 //    DetectorScaleInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"),
@@ -637,6 +664,15 @@ TEST(Features2d_RotationInvariance_Descriptor_ORB, regression)
  * Descriptor's scale invariance check
  */
 
+//TEST(Features2d_ScaleInvariance_Descriptor_BRISK, regression)
+//{
+//    DescriptorScaleInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.BRISK"),
+//                   Algorithm::create<DescriptorExtractor>("Feature2D.BRISK"),
+//                   NORM_HAMMING,
+//                                     0.99f);
+//    test.safe_run();
+//}
+
 //TEST(Features2d_ScaleInvariance_Descriptor_ORB, regression)
 //{
 //    DescriptorScaleInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"),