在启用和打开 OpenCL 的情况下构建 OpenCV

Nem*_*de7 2 opencv opencl

我正在尝试在 OpenCV 上启用 OpenCL 的情况下运行简单的代码。

我已经阅读了 OCL 文档的介绍,并且按照说明,我使用以下标志构建了 opencv:WITH_OPENCL=ON。

我通过执行 cmake -DWITH_OPENCL=ON 然后在 Mac (OS X Yosemite) 上构建 opencv 来做到这一点。

然后我尝试运行我的代码,但是根据我的代码,haveOpenCL() 是错误的。

#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <opencv2/opencv.hpp>
#include <opencv2/core/ocl.hpp>

using namespace std;

int  main ()
{
        cv::ocl::setUseOpenCL(true);
        cout << cv::ocl::haveOpenCL() << endl;
        if  ( ! cv::ocl::haveOpenCL ())
        {
                cout  <<  "OpenCL IS not avaiable ..."  <<  endl ;
                return 0;
        }
Run Code Online (Sandbox Code Playgroud)

有人知道如何启动和运行 OpenCV-OpenCL 吗?

更新:

我在 opencv/build 中检查了我的 cvconfig.h 文件,这是关于 OpenCL 的内容:/* OpenCL Support // #undef HAVE_OPENCL // #undef HAVE_OPENCL_STATIC // #undef HAVE_OPENCL_SVM */

我假设如果 OpenCL 真的启用了,那么第二行应该类似于 #define HAVE_OPENCL 1

这是自动生成的,那么我该如何解决这个问题,使 HAVE_OPENCL 为 1?

Bia*_*int 5

这就是我安装 OpenCV 3.0 的方式,也是我检查它是否正常工作的方式。在此处检查文档:http : //docs.opencv.org/modules/ocl/doc/introduction.html

要正确运行 OCL 模块,您需要拥有设备供应商提供的 OpenCL 运行时,通常是设备驱动程序。

要启用 OCL 支持,请使用 WITH_OPENCL=ON 的 CMake 配置 OpenCV。设置标志后,如果安装了 OpenCL SDK,则构建功能齐全的 OpenCV OCL 模块。否则,模块可能无法构建。

所以我会尽量确保你有支持它的 GPU,然后确保你有驱动程序(SDK?)我在安装 OpenCV 之前首先使用 OpenCL 做了一些工作,以确保我对它们如何独立工作有一定的了解。