具有内置 CUDA 库/功能的 OpenCV-3

Posted

技术标签:

【中文标题】具有内置 CUDA 库/功能的 OpenCV-3【英文标题】:OpenCV-3 with inbuilt CUDA libraries/functionality 【发布时间】:2015-09-11 15:59:26 【问题描述】:

我已经下载了官网提供的opencv.exe。我按照 video 配置了我的 Visual Studio 10。

现在,我可以编译并运行下面给出的简单代码:

#include <cstdio>
#include <opencv2\opencv.hpp>

int main (int argc, char* argv[])

    std::cout<<"opencv Version: "<<CV_VERSION <<std::endl;
    return 0;

问题:但只要我尝试包含 cuda 的标头(即 #include "cuda.hpp"),就会引发错误 fatal error C1083: Cannot open include file: 'cuda.h': No such file or directory

PS:我能够编译和运行一个独立的 cuda 程序,如 video 所示。

我检查了cuda.h 存在于文件夹C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include 中。

【问题讨论】:

#include &lt;opencv2/cuda.hpp&gt; 怎么样?如果这不能解决您的问题,您必须更具体。 “不认识”是什么意思?发布确切的错误消息。 @m.s. : 不,它也没有帮助。我已经更新了我的问题,以更具体地说明“它无法识别它”。 是否将 CUDA 包含目录添加到 Visual Studio? @m.s. :正如我在原始帖子中提到的那样,我尝试为 cuda 运行独立代码,并且成功了。 是的,但是结合 OpenCV 和 CUDA 的项目是否设置了正确的包含路径?还是这是同一个项目? 【参考方案1】:

如果您将 OpenCV 库与 CUDA 库一起构建,则无需显式设置 CUDA 库/头文件的路径。我按照suggested here 的安装方法。

我在我的 OpenCV 代码中包含以下标头,它们运行良好。

#include "opencv2\core\core.hpp"
#include "opencv2\core\cuda.hpp"
#include "opencv2\core\cuda\filters.hpp"
#include "opencv2\cudaarithm.hpp"
#include "opencv2\cudafilters.hpp"
#include "opencv2\cudaimgproc.hpp"
#include "opencv2\cudalegacy.hpp"

【讨论】:

以上是关于具有内置 CUDA 库/功能的 OpenCV-3的主要内容,如果未能解决你的问题,请参考以下文章

opencv3.3 CUDA 初学实例

OpenCV 3.2.0 +Win10+ CUDA 8.0+ VS2013 编译

CUDA 相当于 OpenCV 3 中的 estimateRigidTransform

nvcc 致命:安装 cuda 9.1+caffe+openCV 3.4.0 时不支持 gpu 架构“compute_20”

ubuntu16.04下安装opencv3.3

Ubuntu16.04 安装配置 Caffe 过程 (GPU版+CUDA 9.0+cuDNN 9.0+OpenCV 3.4.1)