[英]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.lib 、 cublas.lib 、 cudnn.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.