OpenCV 使用OpenCL加速,前期的环境该如何准备?

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;
}