1

我正在运行 Visual Stadio2010,并使用 Cmake2.8 构建了 OpenCV2.4,在配置期间设置了:

WITH_CUDA flag on 
CUDA_SDK_ROOT_DIR :C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK 4.2
CUDA_TOOLKIT_ROOT_DIR: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.2

然后在visual studio中构建整个项目,成功。我正在使用 NVIDIA Quadro 5000,并测试了“OpenCV-2.4.0-GPU-demos-pack-win32”中的示例,所有这些都可以正常工作。核心和 highgui 库功能也可以正常工作。但我无法在 openCV 中运行与 GPU 功能相关的任何内容。此代码返回我 0,根据文档,这意味着没有找到设备:

int deviceCount =cv::gpu::getCudaEnabledDeviceCount();
  std::cout << "index " << deviceCount <<"\n";

这与 GPUdemopack 示例中的设备编号相同,但任何其他 gpu 函数都会向我显示以下错误:

OpenCV 错误:未知函数文件 c:\slave\wininstallerMegaPack\src\opencv\modules\core\src\gpumat.cpp,line193 中没有 GPU 支持

任何机构有任何想法?请告诉我。谢谢

4

3 回答 3

1

OpenCV 2.4 仍处于测试阶段,还没有准备好用于严肃的项目。据我测试,它在WindowsMac OS X上有几个构建问题。

我建议您坚持使用最后一个稳定版本 2.3.1。不要使用 2.4,除非那里有你真正需要的功能。

编辑:

顺便说一句,OpenCV 2.3.1 只支持 CUDA 4.0。

于 2012-04-23T19:06:25.733 回答
1
  1. 您是说您自己构建了 OpenCV,但错误消息 ( c:\slave\wininstallerMegaPack\...) 中的文件路径清楚地表明您正在使用来自 sourceforge 的预构建 OpenCV。如果您确实自己构建了 OpenCV,那么您必须对环境进行故障排除并找出使用错误二进制文件的原因。(您可以做的最简单的事情 - 从您的 PC 中删除所有 OpenCV 二进制文件,然后对 OpenCV 和您的应用程序进行干净的完整构建。)

  2. OpenCV 2.4 beta 有一个打包错误,使启用 gpu 的二进制文件无用。所以你必须从源代码重建库或使用 OpenCV 2.3.1(确实是 CUDA 4.0)。

  3. GPU 演示包很棘手——它拥有自己可能需要的所有二进制文件的副本。但是它不能用于开发。

  4. 最终的 OpenCV 2.4 版本将在几天内等待。Windows 软件包将包括工作 CUDA 二进制文件。

编辑:

OpenCV 2.4.0 出来了!

于 2012-04-26T18:26:58.060 回答
1

devicequery.exe从 Cuda SDK ( )运行CUDA sdk 4.1\C\bin\win32\Release并检查您的卡的计算能力值。

然后在 cmake for opencv 中,检查CUDA_ARCH_BIN包含这个值。

早期的卡只有 1.1 并且没有 ARCH_PTX(新的 CUDA 二进制格式)——可以只为新格式构建 opencv——不需要太多的运行时编译

于 2012-04-23T15:51:40.593 回答