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

时间:2015-07-07 00:05:34

标签: opencv opencl

我尝试在OpenCV上启用OpenCL时运行简单代码。

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

我通过执行cmake -DWITH_OPENCL = ON然后在Mac上构建opencv(OS X Yosemite)来完成此操作。

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

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

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

更新

我在opencv / build中检查了我的cvconfig.h文件,这就是它对OpenCL的看法:     / * OpenCL支持 /     / #undef HAVE_OPENCL /     / #undef HAVE_OPENCL_STATIC /     / #undef HAVE_OPENCL_SVM * /

我假设如果真的启用了OpenCL,那么第二行应该是这样的     #define HAVE_OPENCL 1

这是自动生成的,那么如何修复此问题以使HAVE_OPENCL为1?

1 个答案:

答案 0 :(得分:4)

这就是我安装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做了一些工作,以确保我对它们是如何工作有所了解独立地