Opencv 3:在没有 cuda 的情况下构建时,cudarithm.hpp 未安装在 linux 上
Opencv 3: cudarithm.hpp not installed on linux when building without cuda
我对 OpenCV 3 中的 CUDA 模块有疑问。以前在 OpenCV 2 中有 opencv_gpu
模块,包含文件夹中始终有一个 opencv2/gpu/gpu.hpp
文件。无论 OpenCV 是否使用 CUDA 构建,它都会在安装期间移动到那里。然而,在后一种情况下,CUDA 函数稍后将无法在代码中使用,这可以通过调用 cv::gpu::getCudaEnabledDeviceCount()
来检查,然后总是 return 0。这样,可以使用 CUDA 编译程序使用 CUDA 构建的 OpenCV 版本,以及不使用 CUDA 构建的版本。
在 Opencv 3.0 中,CUDA 功能已移至模块 cudaarithm
、cudaimgproc
、cudafilters
、cudawarping
等。它们仅在您添加 opencv contrib 存储库时可用。
现在,我正在创建一个使用 cuda 的程序。然后我意识到,在没有 CUDA 的情况下构建和安装 OpenCV 时,意味着机器不支持 CUDA 并且未安装 NVIDIA cuda 工具包,安装时 CUDA 模块的头文件未复制到 include
文件夹中。这样程序就不会编译。如何使用 OpenCV CUDA 模块编译一个程序,而该程序是在 OpenCV 3 中没有使用 CUDA 构建的?
以前版本的 OpenCV 到 2.3 默认构建是从那时起使用 CUDA 如果你想 运行 支持 cuda 的 Opencv 你已经使用 CUDA Check This Guide 从源代码构建 OpenCV。
你必须有一个支持 CUDA 的 GPU 才能 运行 带有 CUDA 的 Opencv。 NVIDIA CUDA enabled GPU List
好的,至少对于 OpenCV 3.1 来说这似乎不是问题。 cuda 模块也已移回主存储库。
需要有CUDA编译的OpenCV版本。这也可以在没有 Nvidia GPU 的机器上完成。必须安装 Nvidia CUDA 工具包(忽略有关 GPU 的警告消息即可)。但是,图形驱动程序不是必需的。这样用 CUDA 编译 OpenCV 在没有启用 CUDA 的机器上也不应该成为问题。
在您的项目中,您可以只包含 cudaarithm
等模块,并在运行时检查是否有任何 CUDA 设备可用,就像以前一样。
我对 OpenCV 3 中的 CUDA 模块有疑问。以前在 OpenCV 2 中有 opencv_gpu
模块,包含文件夹中始终有一个 opencv2/gpu/gpu.hpp
文件。无论 OpenCV 是否使用 CUDA 构建,它都会在安装期间移动到那里。然而,在后一种情况下,CUDA 函数稍后将无法在代码中使用,这可以通过调用 cv::gpu::getCudaEnabledDeviceCount()
来检查,然后总是 return 0。这样,可以使用 CUDA 编译程序使用 CUDA 构建的 OpenCV 版本,以及不使用 CUDA 构建的版本。
在 Opencv 3.0 中,CUDA 功能已移至模块 cudaarithm
、cudaimgproc
、cudafilters
、cudawarping
等。它们仅在您添加 opencv contrib 存储库时可用。
现在,我正在创建一个使用 cuda 的程序。然后我意识到,在没有 CUDA 的情况下构建和安装 OpenCV 时,意味着机器不支持 CUDA 并且未安装 NVIDIA cuda 工具包,安装时 CUDA 模块的头文件未复制到 include
文件夹中。这样程序就不会编译。如何使用 OpenCV CUDA 模块编译一个程序,而该程序是在 OpenCV 3 中没有使用 CUDA 构建的?
以前版本的 OpenCV 到 2.3 默认构建是从那时起使用 CUDA 如果你想 运行 支持 cuda 的 Opencv 你已经使用 CUDA Check This Guide 从源代码构建 OpenCV。 你必须有一个支持 CUDA 的 GPU 才能 运行 带有 CUDA 的 Opencv。 NVIDIA CUDA enabled GPU List
好的,至少对于 OpenCV 3.1 来说这似乎不是问题。 cuda 模块也已移回主存储库。
需要有CUDA编译的OpenCV版本。这也可以在没有 Nvidia GPU 的机器上完成。必须安装 Nvidia CUDA 工具包(忽略有关 GPU 的警告消息即可)。但是,图形驱动程序不是必需的。这样用 CUDA 编译 OpenCV 在没有启用 CUDA 的机器上也不应该成为问题。
在您的项目中,您可以只包含 cudaarithm
等模块,并在运行时检查是否有任何 CUDA 设备可用,就像以前一样。