Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/modules/features2d/perf/perf_feature2d.cpp
16354 views
1
#include "perf_feature2d.hpp"
2
3
namespace opencv_test
4
{
5
using namespace perf;
6
7
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 img = imread(filename, IMREAD_GRAYSCALE);
12
13
ASSERT_FALSE(img.empty());
14
ASSERT_TRUE(detector);
15
16
declare.in(img);
17
Mat mask;
18
vector<KeyPoint> points;
19
20
TEST_CYCLE() detector->detect(img, points, mask);
21
22
EXPECT_GT(points.size(), 20u);
23
SANITY_CHECK_NOTHING();
24
}
25
26
PERF_TEST_P(feature2d, extract, testing::Combine(testing::Values(DETECTORS_EXTRACTORS), TEST_IMAGES))
27
{
28
Ptr<Feature2D> detector = AKAZE::create();
29
Ptr<Feature2D> extractor = getFeature2D(get<0>(GetParam()));
30
std::string filename = getDataPath(get<1>(GetParam()));
31
Mat img = imread(filename, IMREAD_GRAYSCALE);
32
33
ASSERT_FALSE(img.empty());
34
ASSERT_TRUE(extractor);
35
36
declare.in(img);
37
Mat mask;
38
vector<KeyPoint> points;
39
detector->detect(img, points, mask);
40
41
EXPECT_GT(points.size(), 20u);
42
43
Mat descriptors;
44
45
TEST_CYCLE() extractor->compute(img, points, descriptors);
46
47
EXPECT_EQ((size_t)descriptors.rows, points.size());
48
SANITY_CHECK_NOTHING();
49
}
50
51
PERF_TEST_P(feature2d, detectAndExtract, testing::Combine(testing::Values(DETECTORS_EXTRACTORS), TEST_IMAGES))
52
{
53
Ptr<Feature2D> detector = getFeature2D(get<0>(GetParam()));
54
std::string filename = getDataPath(get<1>(GetParam()));
55
Mat img = imread(filename, IMREAD_GRAYSCALE);
56
57
ASSERT_FALSE(img.empty());
58
ASSERT_TRUE(detector);
59
60
declare.in(img);
61
Mat mask;
62
vector<KeyPoint> points;
63
Mat descriptors;
64
65
TEST_CYCLE() detector->detectAndCompute(img, mask, points, descriptors, false);
66
67
EXPECT_GT(points.size(), 20u);
68
EXPECT_EQ((size_t)descriptors.rows, points.size());
69
SANITY_CHECK_NOTHING();
70
}
71
72
} // namespace
73
74