我正在尝试在 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;
}
有谁知道如何启动并运行 OpenCV-OpenCL?
UPDATE:
我检查了 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?
这就是我安装 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 做了一些工作,以确保我对它们如何独立工作有一定的了解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)