Я использую следующий код для обнаружения особенностей:Как использовать 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 версию SURF. Я изменил свой код для работы с cv::UMat
. К сожалению, время выполнения не меняется. HAS_OPENCL
установлен, cv::ocl::useOpenCL()
- это правда. Что может пойти не так?
сделал вы найдете 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
@ Мика К сожалению, это относится к 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, поэтому, вероятно,/many non-free функции принадлежат им. – Micka