\r
TEST(BruteForceMatcher)\r
{\r
- RNG rng(0);\r
-\r
// Init CPU matcher\r
\r
int desc_len = 128;\r
- int num_trains = rng.uniform(1, 5);\r
\r
BruteForceMatcher< L2<float> > matcher;\r
\r
Mat query; \r
- gen(query, rng.uniform(100, 300), desc_len, CV_32F, 0, 10);\r
-\r
- vector<Mat> trains(num_trains);\r
- for (int i = 0; i < num_trains; ++i)\r
- {\r
- Mat train; \r
- gen(train, rng.uniform(100, 300), desc_len, CV_32F, 0, 10);\r
- trains[i] = train;\r
- }\r
- matcher.add(trains);\r
+ gen(query, 3000, desc_len, CV_32F, 0, 10);\r
+ \r
+ Mat train; \r
+ gen(train, 3000, desc_len, CV_32F, 0, 10);\r
\r
// Init GPU matcher\r
\r
gpu::BruteForceMatcher_GPU< L2<float> > d_matcher;\r
\r
gpu::GpuMat d_query(query);\r
-\r
- vector<gpu::GpuMat> d_trains(num_trains);\r
- for (int i = 0; i < num_trains; ++i)\r
- {\r
- d_trains[i] = trains[i];\r
- }\r
- d_matcher.add(d_trains);\r
+ gpu::GpuMat d_train(train);\r
\r
// Output\r
vector< vector<DMatch> > matches(1);\r
SUBTEST << "match";\r
\r
CPU_ON;\r
- matcher.match(query, matches[0]);\r
+ matcher.match(query, train, matches[0]);\r
CPU_OFF;\r
\r
GPU_ON;\r
- d_matcher.match(d_query, d_matches[0]);\r
+ d_matcher.match(d_query, d_train, d_matches[0]);\r
GPU_OFF;\r
\r
SUBTEST << "knnMatch";\r
- int knn = rng.uniform(3, 10);\r
+ int knn = 10;\r
\r
CPU_ON;\r
- matcher.knnMatch(query, matches, knn);\r
+ matcher.knnMatch(query, train, matches, knn);\r
CPU_OFF;\r
\r
GPU_ON;\r
- d_matcher.knnMatch(d_query, d_matches, knn);\r
+ d_matcher.knnMatch(d_query, d_train, d_matches, knn);\r
GPU_OFF;\r
\r
SUBTEST << "radiusMatch";\r
- float max_distance = rng.uniform(25.0f, 65.0f);\r
+ float max_distance = 45.0f;\r
\r
CPU_ON;\r
- matcher.radiusMatch(query, matches, max_distance);\r
+ matcher.radiusMatch(query, train, matches, max_distance);\r
CPU_OFF;\r
\r
GPU_ON;\r
- d_matcher.radiusMatch(d_query, d_matches, max_distance);\r
+ d_matcher.radiusMatch(d_query, d_train, d_matches, max_distance);\r
GPU_OFF;\r
}
\ No newline at end of file