perf_feature2d.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "../perf_precomp.hpp"
  2. #include "opencv2/ts/ocl_perf.hpp"
  3. #include "../perf_feature2d.hpp"
  4. #ifdef HAVE_OPENCL
  5. namespace opencv_test {
  6. namespace ocl {
  7. OCL_PERF_TEST_P(feature2d, detect, testing::Combine(Feature2DType::all(), TEST_IMAGES))
  8. {
  9. Ptr<Feature2D> detector = getFeature2D(get<0>(GetParam()));
  10. std::string filename = getDataPath(get<1>(GetParam()));
  11. Mat mimg = imread(filename, IMREAD_GRAYSCALE);
  12. ASSERT_FALSE(mimg.empty());
  13. ASSERT_TRUE(detector);
  14. UMat img, mask;
  15. mimg.copyTo(img);
  16. declare.in(img);
  17. vector<KeyPoint> points;
  18. OCL_TEST_CYCLE() detector->detect(img, points, mask);
  19. EXPECT_GT(points.size(), 20u);
  20. SANITY_CHECK_NOTHING();
  21. }
  22. OCL_PERF_TEST_P(feature2d, extract, testing::Combine(testing::Values(DETECTORS_EXTRACTORS), TEST_IMAGES))
  23. {
  24. Ptr<Feature2D> detector = AKAZE::create();
  25. Ptr<Feature2D> extractor = getFeature2D(get<0>(GetParam()));
  26. std::string filename = getDataPath(get<1>(GetParam()));
  27. Mat mimg = imread(filename, IMREAD_GRAYSCALE);
  28. ASSERT_FALSE(mimg.empty());
  29. ASSERT_TRUE(extractor);
  30. UMat img, mask;
  31. mimg.copyTo(img);
  32. declare.in(img);
  33. vector<KeyPoint> points;
  34. detector->detect(img, points, mask);
  35. EXPECT_GT(points.size(), 20u);
  36. UMat descriptors;
  37. OCL_TEST_CYCLE() extractor->compute(img, points, descriptors);
  38. EXPECT_EQ((size_t)descriptors.rows, points.size());
  39. SANITY_CHECK_NOTHING();
  40. }
  41. OCL_PERF_TEST_P(feature2d, detectAndExtract, testing::Combine(testing::Values(DETECTORS_EXTRACTORS), TEST_IMAGES))
  42. {
  43. Ptr<Feature2D> detector = getFeature2D(get<0>(GetParam()));
  44. std::string filename = getDataPath(get<1>(GetParam()));
  45. Mat mimg = imread(filename, IMREAD_GRAYSCALE);
  46. ASSERT_FALSE(mimg.empty());
  47. ASSERT_TRUE(detector);
  48. UMat img, mask;
  49. mimg.copyTo(img);
  50. declare.in(img);
  51. vector<KeyPoint> points;
  52. UMat descriptors;
  53. OCL_TEST_CYCLE() detector->detectAndCompute(img, mask, points, descriptors, false);
  54. EXPECT_GT(points.size(), 20u);
  55. EXPECT_EQ((size_t)descriptors.rows, points.size());
  56. SANITY_CHECK_NOTHING();
  57. }
  58. } // ocl
  59. } // cvtest
  60. #endif // HAVE_OPENCL