具有内置 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 <opencv2/cuda.hpp>
怎么样?如果这不能解决您的问题,您必须更具体。 “不认识”是什么意思?发布确切的错误消息。
@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的主要内容,如果未能解决你的问题,请参考以下文章
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 安装配置 Caffe 过程 (GPU版+CUDA 9.0+cuDNN 9.0+OpenCV 3.4.1)