OpenCV 2.4.3rc i CUDA 4.2: „Błąd OpenCV: brak obsługi GPU”

Wysłałem kilka zrzutów ekranu w tym albumie:http://imgur.com/a/w4jHc

Próbuję uruchomić GPU w OpenCV w Visual Studio 2008. Używam jednego z przykładowych kodów OpenCV GPU, bgfg_segm.cpp. Jednak podczas kompilacji (bez błędów kompilacji) generuje „błąd OpenCV: brak wsparcia GPU”.

Windows 7, 32-bitVisual Studio 2008nVidia Quadro 1000M z wersją sterownika 301.27OpenCV 2.4.3rc (przy użyciu skompilowanych bibliotek, które z nim pochodzą)CUDA Toolkit 4.2, CUDA SDK.

Mogę uruchomić pliki .exe w C: Dane programowe NVIDIA Corporation NVIDIA GPU Computing SDK 4.2 bin bin32 Bez błędów, więc wydaje się, że CUDA działa.

Naprawdę mam nadzieję, że możesz pomóc, ponieważ czuję, że muszę tutaj coś oczywistego. Wszelkie myśli i sugestie są bardzo mile widziane.

EDIT 9 listopada 2012:

Skończyło się na instrukcji Sgar91 i wygląda na to, że wszystko działa teraz!

Jeden komentarz: Kiedy wchodziszEnvironment Variables sprawdź ścieżki CUDA. Jeden z moich miał jeden odwrotny ukośnik (\) za dużo wcześniejbin lubię toC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\\bin;. Istnieją trzy odwołania do CUDA i jego zestawu SDK, więc sprawdź je. Może to był tylko jednorazowy fuks. Nie jestem tego pewien.

Jeszcze jeden komentarz: Zainstalowałem Visual Studio 2010 Express i zauważyłem, że instrukcje sgar91 są przeznaczone dla Visual Studio 2010 (aka „vc10”). Nie będzie działać w Visual Studio 2008 (aka „vc9”) lub Visual Studio 2012 (aka „vc11”), ponieważ nie ma gotowych plików lib z OpenCV 2.4.3 dla vc9 i vc11 (tylko vc10). Należy również pamiętać, że w 64-bitowym systemie Windows należy zmienić wszystkie ścieżki X86 (32-bitowe) na X64 (64-bitowe), jeśli użytkownik postępuje zgodnie ze swoim przewodnikiem, aw programie Visual Studio należy zmienić platformę Solution z Win32 (menu rozwijane u góry, w środku obok opcji Debuguj lub Zwolnij) do x64.

Jeszcze jeden sidenote: OpenCV 2.4.3 obsługuje CUDA 4.2 (lub raczej biblioteki zostały skompilowane z CUDA 4.2). Jeśli zainstalujesz CUDA 5.0, nie zadziała. Zgłasza komunikat o błędzie. Nie pamiętam, które. Jeśli absolutnie potrzebujesz CUDA 5.0, musisz albo poczekać, aż OpenCV umieści je w przyszłych wersjach, albo skompilować własne biblioteki za pomocą CMake.

Uruchomiłem poniższy kod (pochodzi ztutaj, ale musiałem skorygować jeden wiersz, aby go skompilować) i skompilował i pokazał obraz, więc spodziewam się, że to oznacza, że ​​wszystko działa?

#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;

    }

Nie mogę pobrać żadnego kodu w C: opencv próbek gpu do pracy. Kompiluje, ale następnie zgłasza błąd. Ale zrób to, jakoś to wymyślę :)

questionAnswers(1)

yourAnswerToTheQuestion