refactor CUDA BFMatcher algorithm:
use new abstract interface and hidden implementation
This commit is contained in:
@@ -379,14 +379,14 @@ TEST(BruteForceMatcher)
|
||||
|
||||
// Init CUDA matcher
|
||||
|
||||
cuda::BFMatcher_CUDA d_matcher(NORM_L2);
|
||||
Ptr<cuda::DescriptorMatcher> d_matcher = cuda::DescriptorMatcher::createBFMatcher(NORM_L2);
|
||||
|
||||
cuda::GpuMat d_query(query);
|
||||
cuda::GpuMat d_train(train);
|
||||
|
||||
// Output
|
||||
vector< vector<DMatch> > matches(2);
|
||||
cuda::GpuMat d_trainIdx, d_distance, d_allDist, d_nMatches;
|
||||
cuda::GpuMat d_matches;
|
||||
|
||||
SUBTEST << "match";
|
||||
|
||||
@@ -396,10 +396,10 @@ TEST(BruteForceMatcher)
|
||||
matcher.match(query, train, matches[0]);
|
||||
CPU_OFF;
|
||||
|
||||
d_matcher.matchSingle(d_query, d_train, d_trainIdx, d_distance);
|
||||
d_matcher->matchAsync(d_query, d_train, d_matches);
|
||||
|
||||
CUDA_ON;
|
||||
d_matcher.matchSingle(d_query, d_train, d_trainIdx, d_distance);
|
||||
d_matcher->matchAsync(d_query, d_train, d_matches);
|
||||
CUDA_OFF;
|
||||
|
||||
SUBTEST << "knnMatch";
|
||||
@@ -410,10 +410,10 @@ TEST(BruteForceMatcher)
|
||||
matcher.knnMatch(query, train, matches, 2);
|
||||
CPU_OFF;
|
||||
|
||||
d_matcher.knnMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_allDist, 2);
|
||||
d_matcher->knnMatchAsync(d_query, d_train, d_matches, 2);
|
||||
|
||||
CUDA_ON;
|
||||
d_matcher.knnMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_allDist, 2);
|
||||
d_matcher->knnMatchAsync(d_query, d_train, d_matches, 2);
|
||||
CUDA_OFF;
|
||||
|
||||
SUBTEST << "radiusMatch";
|
||||
@@ -426,12 +426,10 @@ TEST(BruteForceMatcher)
|
||||
matcher.radiusMatch(query, train, matches, max_distance);
|
||||
CPU_OFF;
|
||||
|
||||
d_trainIdx.release();
|
||||
|
||||
d_matcher.radiusMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_nMatches, max_distance);
|
||||
d_matcher->radiusMatchAsync(d_query, d_train, d_matches, max_distance);
|
||||
|
||||
CUDA_ON;
|
||||
d_matcher.radiusMatchSingle(d_query, d_train, d_trainIdx, d_distance, d_nMatches, max_distance);
|
||||
d_matcher->radiusMatchAsync(d_query, d_train, d_matches, max_distance);
|
||||
CUDA_OFF;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user