나는 특징 검출을 위해 다음 코드를 사용 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);
}
가 지금은 SURF의 오픈 CL 버전을 사용하려고합니다.
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 불행히도, 이것은 3.0이 아닌 OpenCL 2.4와 관련이 있습니다. 'SURF_OCL'도 거기에 존재하지 않습니다. – Anton3
'cv :: ocl :: setUseOpenCL (true);를 명시 적으로 호출 해 보았습니까? 그러나 http://answers.opencv.org/question/63452/opencv-30-the-performance-of-umat/에는 새로운 API로 변환되지 않은 많은 함수가있을 수 있으므로 아마도/많은 비 자유 함수가 그것들에 속한다. – Micka