OpenCvSharp, установленный с помощью диспетчера пакетов NUGET, не обнаруживает устройство CUDA

Я пытаюсь включить GPU с помощью OpenCvSharp. Я установил OpenCvSharp с помощью диспетчера пакетов Nuget в Microsoft Visual Studio 2013.

Я уже включил эти строки

                 using OpenCvSharp;
                 using OpenCvSharp.CPlusPlus;
                 using OpenCvSharp.CPlusPlus.Gpu;

но когда я проверяю количество устройств

  //GPU
                int count = Cv2Gpu.GetCudaEnabledDeviceCount();
                //int count = Cv2Gpu.ge
                Console.WriteLine("The GPU Device count is " +  count.ToString());

он всегда возвращает 0.

Теперь он также говорит, что если OpenCv не скомпилирован с CUDA, то он всегда возвращает 0. Он даже не получает DeviceDetails.


person Arslan Ehsan Khan    schedule 09.09.2015    source источник


Ответы (1)


Я решил эту проблему, создав opencv_core.dll и opencv_gpu.dll.

Создайте исходный код opencv с помощью Cmake и не забудьте выбрать опцию «withcuda» при первой настройке исходного кода.

после генерации откройте решение OpenCv в папке сборки и сначала соберите opencv_core, а затем opencv_gpu.

как только вы получите dll в папке bin, замените их в папке пакета opencvsharp. Теперь создайте проект снова. Теперь проект скопирует новую DLL в нужную папку.

person Arslan Ehsan Khan    schedule 30.09.2015