OpenCV 2.4.3 rc et CUDA 4.2: “OpenCV Erreur: Pas de prise en charge de GPU”

J'ai téléchargé plusieurs captures d'écran dans cet album: http://imgur.com/a/w4jHc

J'essaie d'obtenir GPU et en cours d'exécution dans OpenCV dans Visual Studio 2008. Je suis en cours d'exécution de l'une des OpenCV GPU exemple des codes, bgfg_segm.cpp. Cependant, quand je compile (pas d'erreurs de compilation), il déclenche une "OpenCV Erreur: Pas de GPU suport".

  • Windows 7, 32 bits
  • Visual Studio 2008
  • nVidia Quadro 1000M avec la version du pilote 301.27
  • OpenCV 2.4.3 rc (à l'aide de la précompilés libs qui est venu avec elle)
  • CUDA Toolkit 4.2, CUDA SDK.

Je peux courir le .les fichiers exe dans C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\C\bin\win32\Libération sans aucune erreur, il semblerait que CUDA est de travail.

J'espère vraiment que vous pouvez l'aider parce que je sens que je doit manquer quelque chose d'évident ici. Des idées ou suggestions sont très appréciés.

MODIFIER le 9 novembre 2012:

J'ai fini par suite de sgar91 les instructions et il semble que les choses fonctionnent maintenant!

Un sidenote: Lorsque vous entrez Environment Variables découvrez les chemins d'accès pour CUDA. Un de mes amis avait une barre oblique inverse (\) trop avant bin comme ce C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\\bin;. Il y a trois références de CUDA et son SDK, afin de les vérifier. Peut-être que c'était juste un coup de chance. Je ne suis pas sûr que ce questions de.

Un plus sidenote: j'ai installé Visual Studio 2010 Express, et note que sgar91 les instructions sont destinées à Visual Studio 2010 (aka "vc10"). Il ne fonctionnera pas dans Visual Studio 2008 (aka "vc9") ou Visual Studio 2012 (aka "vc11"), car il n'y a pas prêtes à l'emploi lib fichiers avec OpenCV 2.4.3 pour vc9 et vc11 (seulement vc10). Aussi, soyez conscient que si vous êtes sur Windows 64 bits, vous devez changer toutes les x 86 chemins (32 bits) pour les systèmes X64 (64 bits) au lieu de cela lorsque vous suivez son guide, et dans Visual Studio, vous devez modifier la Solution de Plate-forme à partir de Win32 (menu déroulant en haut, au milieu, à côté de Debug ou Release) pour x64.

Encore un de plus sidenote: OpenCV 2.4.3 prend en charge CUDA 4.2 (ou plutôt les libs ont été compilés avec CUDA 4.2). Si vous installez CUDA 5.0, il ne fonctionnera pas. Il lance un message d'erreur. Ne me souviens pas de qui. Si vous avez absolument besoin de CUDA 5.0, vous devez soit attendre pour OpenCV pour les inclure dans les prochaines versions ou de compiler votre propre libs via CMake.

J'ai couru le code ci-dessous (c'est à partir de ici, mais j'ai dû corriger une ligne pour compiler) et elle a établi et a montré l'image, donc je m'attends à ce que cela signifie que les choses sont en train de travailler?

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

    }

Je ne peux pas obtenir tout le code dans C:\opencv\samples\gpu de travail. Il compile, mais puis lève une erreur. Mais le vis, je verrai ça en quelque sorte 🙂

OriginalL'auteur ubehagelig | 2012-11-05