如何在opencv中使用ocl模块

时间:2013-10-17 10:43:49

标签: c++ opencv opencl

我正在尝试在opencv中使用ocl模块。我正在使用Visual Studio 2012

我从使用surf进行特征检测的示例代码开始。代码如下:

SURF detector;
SURF extractor;
BFMatcher matcher;

std::vector<KeyPoint> keypoints_1, keypoints_2;

detector.detect( image1, keypoints_1 );
detector.detect( image2, keypoints_2 );

//-- Step 2: Calculate descriptors (feature vectors)
Mat descriptors_1, descriptors_2;

extractor.compute( image1, keypoints_1, descriptors_1 );
extractor.compute( image2, keypoints_2, descriptors_2 );

//-- Step 3: Matching descriptor vectors using FLANN matcher
std::vector< DMatch > matches;
matcher.match( descriptors_1, descriptors_2, matches);

代码完美无缺,现在我想使用SURF_OCL而不是SURF。我该怎么办?

以下代码不起作用:

ocl::SURF_OCL detector;
ocl::SURF_OCL extractor;

生成编译时错误:

'ocl' : is not a class or namespace name
'SURF_OCL' : undeclared identifier

如何才能使用ocl库中的函数?

1 个答案:

答案 0 :(得分:3)

您错过了#include <...>,可能是#include <opencv2/nonfree/ocl.hpp>。有关示例,请参阅here