diff --git a/modules/features2d/test/test_descriptors_regression.cpp b/modules/features2d/test/test_descriptors_regression.cpp index 7f44bc2bdd..d6fd30d951 100644 --- a/modules/features2d/test/test_descriptors_regression.cpp +++ b/modules/features2d/test/test_descriptors_regression.cpp @@ -350,6 +350,14 @@ TEST( Features2d_DescriptorExtractor_AKAZE, regression ) test.safe_run(); } +TEST( Features2d_DescriptorExtractor_AKAZE_DESCRIPTOR_KAZE, regression ) +{ + CV_DescriptorExtractorTest< L2<float> > test( "descriptor-akaze-with-kaze-desc", 0.03f, + AKAZE::create(AKAZE::DESCRIPTOR_KAZE), + L2<float>(), AKAZE::create(AKAZE::DESCRIPTOR_KAZE)); + test.safe_run(); +} + TEST( Features2d_DescriptorExtractor, batch ) { string path = string(cvtest::TS::ptr()->get_data_path() + "detectors_descriptors_evaluation/images_datasets/graf"); diff --git a/modules/features2d/test/test_detectors_regression.cpp b/modules/features2d/test/test_detectors_regression.cpp index 9b6d489535..895c6bfc63 100644 --- a/modules/features2d/test/test_detectors_regression.cpp +++ b/modules/features2d/test/test_detectors_regression.cpp @@ -302,6 +302,13 @@ TEST( Features2d_Detector_AKAZE, regression ) test.safe_run(); } +TEST( Features2d_Detector_AKAZE_DESCRIPTOR_KAZE, regression ) +{ + CV_FeatureDetectorTest test( "detector-akaze-with-kaze-desc", AKAZE::create(AKAZE::DESCRIPTOR_KAZE) ); + test.safe_run(); +} + + TEST( Features2d_Detector_AKAZE, detect_and_compute_split ) { Mat testImg(100, 100, CV_8U); diff --git a/modules/features2d/test/test_rotation_and_scale_invariance.cpp b/modules/features2d/test/test_rotation_and_scale_invariance.cpp index 072adc40df..5a5e59ce51 100644 --- a/modules/features2d/test/test_rotation_and_scale_invariance.cpp +++ b/modules/features2d/test/test_rotation_and_scale_invariance.cpp @@ -104,8 +104,12 @@ void rotateKeyPoints(const vector<KeyPoint>& src, const Mat& H, float angle, vec void scaleKeyPoints(const vector<KeyPoint>& src, vector<KeyPoint>& dst, float scale) { dst.resize(src.size()); - for(size_t i = 0; i < src.size(); i++) - dst[i] = KeyPoint(src[i].pt.x * scale, src[i].pt.y * scale, src[i].size * scale, src[i].angle); + for (size_t i = 0; i < src.size(); i++) { + dst[i] = src[i]; + dst[i].pt.x *= scale; + dst[i].pt.y *= scale; + dst[i].size *= scale; + } } static @@ -630,6 +634,22 @@ TEST(Features2d_RotationInvariance_Detector_ORB, regression) test.safe_run(); } +TEST(Features2d_RotationInvariance_Detector_AKAZE, regression) +{ + DetectorRotationInvarianceTest test(AKAZE::create(), + 0.5f, + 0.76f); + test.safe_run(); +} + +TEST(Features2d_RotationInvariance_Detector_AKAZE_DESCRIPTOR_KAZE, regression) +{ + DetectorRotationInvarianceTest test(AKAZE::create(AKAZE::DESCRIPTOR_KAZE), + 0.5f, + 0.76f); + test.safe_run(); +} + /* * Descriptors's rotation invariance check */ @@ -648,6 +668,20 @@ TEST(Features2d_RotationInvariance_Descriptor_ORB, regression) test.safe_run(); } +TEST(Features2d_RotationInvariance_Descriptor_AKAZE, regression) +{ + Ptr<Feature2D> f2d = AKAZE::create(); + DescriptorRotationInvarianceTest test(f2d, f2d, f2d->defaultNorm(), 0.99f); + test.safe_run(); +} + +TEST(Features2d_RotationInvariance_Descriptor_AKAZE_DESCRIPTOR_KAZE, regression) +{ + Ptr<Feature2D> f2d = AKAZE::create(AKAZE::DESCRIPTOR_KAZE); + DescriptorRotationInvarianceTest test(f2d, f2d, f2d->defaultNorm(), 0.99f); + test.safe_run(); +} + //TEST(Features2d_RotationInvariance_Descriptor_FREAK, regression) //{ // DescriptorRotationInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.ORB"), @@ -679,6 +713,12 @@ TEST(Features2d_ScaleInvariance_Detector_AKAZE, regression) test.safe_run(); } +TEST(Features2d_ScaleInvariance_Detector_AKAZE_DESCRIPTOR_KAZE, regression) +{ + DetectorScaleInvarianceTest test(AKAZE::create(AKAZE::DESCRIPTOR_KAZE), 0.08f, 0.49f); + test.safe_run(); +} + TEST(Features2d_ScaleInvariance_Detector_ORB, regression) { DetectorScaleInvarianceTest test(ORB::create(), 0.08f, 0.49f); @@ -689,6 +729,20 @@ TEST(Features2d_ScaleInvariance_Detector_ORB, regression) * Descriptor's scale invariance check */ +TEST(Features2d_ScaleInvariance_Descriptor_AKAZE, regression) +{ + Ptr<Feature2D> akaze = AKAZE::create(); + DescriptorScaleInvarianceTest test(akaze, akaze, akaze->defaultNorm(), 0.01f); + test.safe_run(); +} + +TEST(Features2d_ScaleInvariance_Descriptor_AKAZE_DESCRIPTOR_KAZE, regression) +{ + Ptr<Feature2D> akaze = AKAZE::create(AKAZE::DESCRIPTOR_KAZE); + DescriptorScaleInvarianceTest test(akaze, akaze, akaze->defaultNorm(), 0.01f); + test.safe_run(); +} + //TEST(Features2d_ScaleInvariance_Descriptor_BRISK, regression) //{ // DescriptorScaleInvarianceTest test(Algorithm::create<FeatureDetector>("Feature2D.BRISK"),