OpenCV内部有提供使用OpenCL的加速接口,如果我想用OpenCL进行加速,我需要准备哪些环境?OpenCL库? 显卡驱动? 该如何操作?
编译opencv 的时候会有With-OpenCl的选项,选中, 如果是Linux 下可能需要下载对应官方的linux 驱动和SDK
另外,可以提供一个demo 用于测ocl 是否正常调用
#include <stdio.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/ocl.hpp>
using namespace std;
using namespace cv;
const string filename = "./lena.jpg";
int main(int argc, char **argv)
{
//use opencl
ocl::setUseOpenCL(true);
//time
int64 start=0,end=0;
UMat img,gray;
img = imread(filename, 1).getUMat(ACCESS_READ);
cvtColor(img,gray,COLOR_BGR2GRAY);
start = getTickCount();
GaussianBlur(gray, gray, Size(7,7), 1.5);
end = getTickCount();
printf("Guass time: %f ms\n", 1000.0*(end - start)/getTickFrequency());
start = getTickCount();
Canny(gray, gray, 0, 50);
end = getTickCount();
printf("Canny time: %f ms\n", 1000.0*(end - start)/getTickFrequency());
imshow("edges",gray);
waitKey(0);
return 0;
}