From 92da6d381bd069751c452cff7cc1890eae4670e9 Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Fri, 24 Aug 2012 03:42:58 +0200 Subject: [PATCH] add rotation tests for the descriptors --- modules/features2d/src/brisk.cpp | 3 ++ .../test/test_rotation_and_scale_invariance.cpp | 36 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/modules/features2d/src/brisk.cpp b/modules/features2d/src/brisk.cpp index 415ed78..8d5fe0d 100755 --- a/modules/features2d/src/brisk.cpp +++ b/modules/features2d/src/brisk.cpp @@ -530,6 +530,9 @@ BRISK::operator()( InputArray _image, InputArray _mask, vector& 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); diff --git a/modules/features2d/test/test_rotation_and_scale_invariance.cpp b/modules/features2d/test/test_rotation_and_scale_invariance.cpp index 48dddd3..ac30946 100644 --- a/modules/features2d/test/test_rotation_and_scale_invariance.cpp +++ b/modules/features2d/test/test_rotation_and_scale_invariance.cpp @@ -592,6 +592,15 @@ protected: /* * Detector's rotation invariance check */ + +TEST(Features2d_RotationInvariance_Detector_BRISK, regression) +{ + DetectorRotationInvarianceTest test(Algorithm::create("Feature2D.BRISK"), + 0.32f, + 0.81f); + test.safe_run(); +} + TEST(Features2d_RotationInvariance_Detector_ORB, regression) { DetectorRotationInvarianceTest test(Algorithm::create("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("Feature2D.BRISK"), + Algorithm::create("Feature2D.BRISK"), + NORM_HAMMING, + 0.99f); + test.safe_run(); +} + TEST(Features2d_RotationInvariance_Descriptor_ORB, regression) { DescriptorRotationInvarianceTest test(Algorithm::create("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("Feature2D.BRISK"), +// 0.09f, +// 0.52f); +// test.safe_run(); +//} + //TEST(Features2d_ScaleInvariance_Detector_ORB, regression) //{ // DetectorScaleInvarianceTest test(Algorithm::create("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("Feature2D.BRISK"), +// Algorithm::create("Feature2D.BRISK"), +// NORM_HAMMING, +// 0.99f); +// test.safe_run(); +//} + //TEST(Features2d_ScaleInvariance_Descriptor_ORB, regression) //{ // DescriptorScaleInvarianceTest test(Algorithm::create("Feature2D.ORB"), -- 2.7.4