diff --git a/modules/features2d/perf/perf_fast.cpp b/modules/features2d/perf/perf_fast.cpp index 0abf56b56..078ad9cf0 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); }