OpenCV 2.4.3rc и CUDA 4.2: «Ошибка OpenCV: нет поддержки графического процессора»

Я загрузил несколько скриншотов в этот альбом:http://imgur.com/a/w4jHc

Я пытаюсь запустить и запустить GPU в OpenCV в Visual Studio 2008. Я использую один из примеров кода OpenCV GPU, bgfg_segm.cpp. Однако, когда я компилирую (без ошибок компиляции), он выдает «Ошибка OpenCV: Нет поддержки графического процессора».

Windows 7, 32-битнаяVisual Studio 2008nVidia Quadro 1000M с версией драйвера 301.27OpenCV 2.4.3rc (с использованием предварительно скомпилированных библиотек)CUDA Toolkit 4.2, CUDA SDK.

Я могу запустить .exe файлы в C: \ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 4.2 \ C \ bin \ win32 \ Release без каких-либо ошибок, поэтому может показаться, что CUDA работает.

Я действительно надеюсь, что вы можете помочь, потому что я чувствую, что мне здесь не хватает чего-то очевидного. Любые мысли или предложения высоко ценятся.

РЕДАКТИРОВАТЬ 9 ноября 2012 года:

В итоге я следовал инструкциям sgar91, и теперь кажется, что все работает!

Один знак: Когда вы вводитеEnvironment Variables Проверьте пути для CUDA. У одного из меня был один обратный слеш (\) слишком много раньшеbin нравитсяC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\\bin;, Есть три ссылки на CUDA и его SDK, так что проверьте их. Может быть, это был просто случайный случай. Я не уверен, что это имеет значение вообще.

Еще один признак: Я установил Visual Studio 2010 Express и обратите внимание, что инструкции sgar91 предназначены для Visual Studio 2010 (он же «vc10»). Он не будет работать в Visual Studio 2008 (он же «vc9») или Visual Studio 2012 (он же «vc11»), потому что нет готовых файлов lib с OpenCV 2.4.3 для vc9 и vc11 (только vc10). Кроме того, имейте в виду, что если вы работаете в 64-битной Windows, вы должны изменить все пути X86 (32-битные) на X64 (64-битные) вместо этого, когда вы следуете его руководству, а в Visual Studio вам нужно изменить платформу решений с Win32 (раскрывающееся меню вверху, посередине рядом с «Отладка или выпуск») до x64.

Еще одна особенность: OpenCV 2.4.3 поддерживает CUDA 4.2 (точнее, библиотеки были скомпилированы с CUDA 4.2). Если вы установите CUDA 5.0, он не будет работать. Выдает сообщение об ошибке. Не могу вспомнить что. Если вам абсолютно необходима CUDA 5.0, вы должны либо подождать, пока OpenCV включит его в будущие версии, либо скомпилировать свои собственные библиотеки через CMake.

Я запустил код ниже (это отВот, но мне пришлось исправить одну строку в нем, чтобы он скомпилировался), и он скомпилировал и показал изображение, так что я ожидаю, что это означает, что все работает?

#ifdef _DEBUG
#pragma comment(lib,"opencv_gpu243d")
#pragma comment(lib,"opencv_core243d")
#pragma comment(lib,"opencv_highgui243d")
#else
#pragma comment(lib,"opencv_core243")
#pragma comment(lib,"opencv_highgui243")
#pragma comment(lib,"opencv_gpu243")
#endif

    #include <iostream>
    #include "opencv2/opencv.hpp"
    #include "opencv2/gpu/gpu.hpp"

    int main (int argc, char* argv[])
    {
        try
        {
            cv::Mat src_host = cv::imread("file.png", CV_LOAD_IMAGE_GRAYSCALE);
            cv::gpu::GpuMat dst, src;
            src.upload(src_host);

            cv::gpu::threshold(src, dst, 128.0, 255.0, CV_THRESH_BINARY);

            cv::Mat result_host(dst);
            //cv::Mat result_host = dst;         //old line commented out
            cv::imshow("Result", result_host);   //new line added by me
            cv::waitKey();
        }
        catch(const cv::Exception& ex)
        {
            std::cout << "Error: " << ex.what() << std::endl;
        }
        return 0;

    }

Я не могу заставить любой код в C: \ opencv \ samples \ gpu работать. Компилируется, но затем выдает ошибку. Но прикрутите, я это как-нибудь выясню :)

Ответы на вопрос(1)

Ваш ответ на вопрос