【问题标题】:Opencv 3: cudarithm.hpp not installed on linux when building without cudaOpencv 3:在没有 cuda 的情况下构建时,linux 上未安装 cudaithm.hpp
【发布时间】:2016-02-28 21:58:12
【问题描述】:

我有一个关于 OpenCV 3 中的 CUDA 模块的问题。以前在 OpenCV 2 中有 opencv_gpu 模块,并且在包含文件夹中总是有一个 opencv2/gpu/gpu.hpp 文件。无论 OpenCV 是否使用 CUDA 构建,它都会在安装过程中移到那里。然而,在后一种情况下,CUDA 函数在代码的后面部分将无法使用,可以通过调用 cv::gpu::getCudaEnabledDeviceCount() 来检查,然后总是返回 0。这样,使用 CUDA 的程序可以使用已构建的 OpenCV 版本进行编译使用 CUDA,以及没有使用 CUDA 构建的。

在 Opencv 3.0 中,CUDA 函数已移至模块 cudaarithmcudaimgproccudafilterscudawarping 等。它们仅在您添加 opencv contrib 存储库时可用。

现在,我正在创建一个使用 cuda 的程序。然后我意识到,在没有CUDA的情况下构建和安装OpenCV时,意味着机器不支持CUDA并且没有安装NVIDIA cuda工具包,安装时CUDA模块的头文件没有复制到include文件夹中。这样程序不会编译。您如何使用 OpenCV CUDA 模块编译一个程序,并且在 OpenCV 3 中构建一个没有 CUDA 的构建?

【问题讨论】:

    标签: opencv3.0


    【解决方案1】:

    以前版本的 OpenCV 到 2.3 的默认版本从那时起使用 CUDA,如果您想在支持 cuda 的情况下运行 OpenCV,您必须使用 CUDA Check This Guide 从源代码构建 OpenCV。 您必须有一个启用了 CUDA 的 GPU 才能使用 CUDA 运行 Opencv。 NVIDIA CUDA enabled GPU List

    【讨论】:

    • 我知道。那不是我的问题。我只是想知道是否仍然可以构建一个使用 OpenCV(及其 gpu 模块)的项目和一个在没有 CUDA 支持的情况下构建的 OpenCV-build。以前 opencv_gpu 库和头文件总是在那里,无论 OpenCV 是使用还是不使用 CUDA 构建的。现在它们只有在 使用 CUDA 构建时才存在。
    • 正如我所说,没有 CUDA 支持,无法运行使用 opencv3.0 中的 cuda 的程序。最近我尝试了很多,虽然我的 GPU 启用了 cuda,但由于其计算能力为 1.1,因此无法使用 CUDA 从 Source 构建 opencv。你仍然可以,但我认为没有其他方法:/
    【解决方案2】:

    好的,至少对于 OpenCV 3.1,这似乎不是问题。 cuda 模块也已移回主存储库。

    必须有一个使用 CUDA 编译的 OpenCV 版本。这也可以在没有 Nvidia GPU 的机器上完成。必须安装 Nvidia CUDA 工具包(只需忽略有关 GPU 的警告消息)。但是,图形驱动程序不是必需的。这种使用 CUDA 编译 OpenCV 的方式在未启用 CUDA 的机器上也不应该成为问题。

    然后,您可以在您的项目中仅包含 cudaarithm 等模块,并像以前一样检查运行时是否有任何 CUDA 设备可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      相关资源
      最近更新 更多