繁体   English   中英

包含在 Visual Studio C++ 中的文件/目录以使用 CUDA?

[英]Files/directories to include in Visual Studio C++ to use CUDA?

我想在 Visual Studio 的 OpenCV 中使用 CUDA/GPU。 例如, cuda::GpuMat 我使用启用了 CUDA 的额外模块成功构建了 OpenCV

我尝试了以下代码

#include <string>
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/photo/cuda.hpp>
#include <opencv2/photo.hpp>

using namespace std;
using namespace cv;

int main(){

   string imageName("input.bmp");

   //CPU version
   Mat image = imread(imageName.c_str(), IMREAD_GRAYSCALE);

   //CUDA version       
   cuda::GpuMat imageGPU;
   cuda::GpuMat downloadGPU;
   Mat buff;
   imageGPU.upload(image);
   cuda::fastNlMeansDenoising(imageGPU, downloadGPU, 2.5, 7, 31);
   downloadGPU.download(buff);
   imwrite("gpu.bmp", buff);

   return 0;
}

但我得到一个unhandled exception错误。

我最初在C:\Users\me\Downloads\opencv中下载了 OpenCV

然后,我在C:\Users\me\Downloads\opencv-master1\opencv-master

Property Pages->C/C++->General->Additional Include Directories中,我有:

C:\Users\me\Downloads\opencv\build\include\opencv
C:\Users\me\Downloads\opencv\build\include\opencv2
C:\Users\me\Downloads\opencv\build\include\

Property Pages->Linker->General->Additional Library Directories ,我有:

C:\Users\me\Downloads\opencv\build\x64\vc15\lib

Property Pages->Linker->Input->Additional Dependencies中,我有:

opencv_world343d.lib
opencv_world343.lib

我还应该包括什么才能让GpuMat正常工作?

大多数情况下,是的,但是您需要知道需要添加哪个库,它可能是cufft.libcublas.libcudnn.lib等。这取决于您在代码中使用的 function。

Opencv 包含一个 cmake 包含文件,如果您使用 cmake 构建您的 VS 测试项目,它将为您设置所有这些。 该文件将位于 opencv 安装目录的根目录中,即在构建 opencv 之后运行 cmake --install 或 VS 中的等效项。 该文件是 OpenCVConfig.cmake,它将包含在您项目的 CMakeLists.txt 文件中。 然后你会调用 FindPackage(OpenCV),它会找到 OpenCV 安装,设置一些变量,然后你将使用它们链接到你的应用程序。

如果您觉得有帮助,我可以发布一个示例 CMakeList.txt 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM