簡體   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