我尝试在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?
答案 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做了一些工作,以确保我对它们是如何工作有所了解独立地