我用下面的代码功能检测:如何使用OpenCL版本的SURF?
auto detector = cv::xfeatures2d::SURF::create();
std::vector<cv::KeyPoint> keypoints;
for (const cv::Mat& image : images) {
detector->detect(image, keypoints);
process(keypoints);
}
现在我尝试使用冲浪的OpenCL版本。我修改了我的代码以使用cv::UMat
。不幸的是,执行时间不会改变。 HAS_OPENCL
已设置,cv::ocl::useOpenCL()
为true。有什么可能出错?
做你可以找到http://docs.opencv.org/2.4/modules/nonfree/doc/feature_detection.html#ocl-surf-ocl和http://code.opencv.org/attachments/1560/surf.ocl.cpp? ? – Micka
@Micka不幸的是,这与OpenCL 2.4相关,而不是3.0。 SURF_OCL甚至不存在。 – Anton3
你是否尝试调用'cv :: ocl :: setUseOpenCL(true);'显式地?但http://answers.opencv.org/question/63452/opencv-30-the-performance-of-umat/表示可能有很多函数没有被转换为新的API,所以可能很多非自由的功能属于他们。 – Micka