From d4cf9e22ccdaeb0071208f0a1563ff58bc0254db Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Tue, 9 Oct 2012 15:54:13 +0400 Subject: [PATCH] Fix terrible perf test for FAST detector --- modules/features2d/perf/perf_fast.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/features2d/perf/perf_fast.cpp b/modules/features2d/perf/perf_fast.cpp index 0abf56b565..078ad9cf01 100644 --- a/modules/features2d/perf/perf_fast.cpp +++ b/modules/features2d/perf/perf_fast.cpp @@ -6,15 +6,23 @@ using namespace perf; using std::tr1::make_tuple; using std::tr1::get; -typedef perf::TestBaseWithParam fast; +enum { TYPE_5_8 =FastFeatureDetector::TYPE_5_8, TYPE_7_12 = FastFeatureDetector::TYPE_7_12, TYPE_9_16 = FastFeatureDetector::TYPE_9_16 }; +CV_ENUM(FastType, TYPE_5_8, TYPE_7_12, TYPE_9_16) + +typedef std::tr1::tuple File_Type_t; +typedef perf::TestBaseWithParam fast; #define FAST_IMAGES \ "cv/detectors_descriptors_evaluation/images_datasets/leuven/img1.png",\ "stitching/a3.png" -PERF_TEST_P(fast, detectForORB, testing::Values(FAST_IMAGES)) +PERF_TEST_P(fast, detect, testing::Combine( + testing::Values(FAST_IMAGES), + testing::ValuesIn(FastType::all()) + )) { - String filename = getDataPath(GetParam()); + String filename = getDataPath(get<0>(GetParam())); + int type = get<1>(GetParam()); Mat frame = imread(filename, IMREAD_GRAYSCALE); if (frame.empty()) @@ -22,13 +30,11 @@ PERF_TEST_P(fast, detectForORB, testing::Values(FAST_IMAGES)) declare.in(frame); - FastFeatureDetector fd(20, true, FastFeatureDetector::TYPE_5_8); + FastFeatureDetector fd(20, true, type); vector points; TEST_CYCLE() fd.detect(frame, points); - fd = FastFeatureDetector(20, true, FastFeatureDetector::TYPE_7_12); - TEST_CYCLE() fd.detect(frame, points); - fd = FastFeatureDetector(20, true, FastFeatureDetector::TYPE_9_16); - TEST_CYCLE() fd.detect(frame, points); + + SANITY_CHECK(points); }