From 8e42ca1764b3a81e1c1d2b39a02303a70d421bdd Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Mon, 14 Jan 2013 14:06:00 +0400 Subject: [PATCH 1/2] SURF keypoints rotation invariance test. It calcs kpts for a cross and checks that 4 kpts at the edges have equal responce. --- .../test_rotation_and_scale_invariance.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/nonfree/test/test_rotation_and_scale_invariance.cpp b/modules/nonfree/test/test_rotation_and_scale_invariance.cpp index 8d32f50bec..399a7a2885 100644 --- a/modules/nonfree/test/test_rotation_and_scale_invariance.cpp +++ b/modules/nonfree/test/test_rotation_and_scale_invariance.cpp @@ -668,3 +668,22 @@ TEST(Features2d_ScaleInvariance_Descriptor_SIFT, regression) 0.87f); test.safe_run(); } + + +TEST(Features2d_RotationInvariance2_Detector_SURF, regression) +{ + Mat cross(100, 100, CV_8UC1, Scalar(255)); + line(cross, Point(30, 50), Point(69, 50), Scalar(100), 3); + line(cross, Point(50, 30), Point(50, 69), Scalar(100), 3); + + SURF surf(8000., 3, 4, true, false); + + vector keypoints; + + surf(cross, noArray(), keypoints); + + ASSERT_EQ(keypoints.size(), 5); + ASSERT_LT( fabs(keypoints[1].response - keypoints[2].response), 1e-6); + ASSERT_LT( fabs(keypoints[1].response - keypoints[3].response), 1e-6); + ASSERT_LT( fabs(keypoints[1].response - keypoints[4].response), 1e-6); +} From 9f0d5f60b5bc21c08961958326895711230606a8 Mon Sep 17 00:00:00 2001 From: Andrey Pavlenko Date: Mon, 14 Jan 2013 18:15:51 +0400 Subject: [PATCH 2/2] fixinf warning on non-Windows systems --- modules/nonfree/test/test_rotation_and_scale_invariance.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nonfree/test/test_rotation_and_scale_invariance.cpp b/modules/nonfree/test/test_rotation_and_scale_invariance.cpp index 399a7a2885..3479be72a7 100644 --- a/modules/nonfree/test/test_rotation_and_scale_invariance.cpp +++ b/modules/nonfree/test/test_rotation_and_scale_invariance.cpp @@ -682,7 +682,7 @@ TEST(Features2d_RotationInvariance2_Detector_SURF, regression) surf(cross, noArray(), keypoints); - ASSERT_EQ(keypoints.size(), 5); + ASSERT_EQ(keypoints.size(), (vector::size_type) 5); ASSERT_LT( fabs(keypoints[1].response - keypoints[2].response), 1e-6); ASSERT_LT( fabs(keypoints[1].response - keypoints[3].response), 1e-6); ASSERT_LT( fabs(keypoints[1].response - keypoints[4].response), 1e-6);