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
Vous devez vous connecter pour publier un commentaire.
Vous utilisez ces OpenCV des binaires compilés sans support GPU.
C:\opencv\build\x86\...
sont sans support GPU.Vous devez utiliser les fichiers binaires et les fichiers lib qui sont présents dans le
build\gpu
dossier.C:\opencv\build\gpu\x86\...
sont avec support GPU.Mise à JOUR:
Procédure:
Dans Visual Studio 2010, allez dans les propriétés du projet. Dans les Répertoires de VC++, vous verrez la page suivante:
Ajouter le chemin d'accès de OpenCV
include
dossier dans le Inclure des Répertoires zone de texte. Assurez-vous que les chemins d'accès multiples sont séparées par un point-virgule et il n'y a pas d'espace dans un de la chemin de.De même ajouter le chemin d'accès de OpenCV
lib
dossiers pour le GPU et Non le GPU versions dans le Bibliothèque Répertoires zone de texte. (Ne pas oublier le point-virgule)Important: Lors de l'écriture des chemins d'accès dans la boîte, premier à écrire le GPU chemin et après que, le Non-GPU chemin.
Prochaine étape est d'ajouter le chemin d'accès de
bin
dossier de OpenCV. Mais pas dans visual studio, mais dans lePath
variable d'Environnement comme indiqué ci-dessous:My Computer
Environment Variables
sectionPath
C:\OpenCV\build\gpu\x86\vc10\bin
etC:\OpenCV\build\x86\vc10\bin
le Chemin. N'oubliez pas de séparer les différentes valeurs avec un point virgule. Aussi---> GPU Vient en Premier.Redémarrez Visual Studio. L'éditeur de liens et
#include
directive ne reconnaît pas la OpenCV bibliothèques.Comme nous l'avons ajouté la voie de la GPU bibliothèques aussi, afin de compléter support GPU sera disponible dans OpenCV.
À utiliser le GPU de la fonctionnalité de OpenCV, vous avez juste à faire ce qui suit:
#include opencv2/gpu/gpu.hpp
opencv_gpu243d.lib
pour la Configuration de Débogage, ouopencv_gpu243.lib
pour la Libération de Configuration dans le champ Dépendances Supplémentaires dans leLinker->Input
section de propriétés du projet.Quelques Informations Supplémentaires:
Dans Visual Studio, il est un moyen facile pour les bibliothèques de liens au lieu de les spécifier dans les propriétés du projet.
Il suffit d'écrire ces lignes dans le début de votre code:
J'ai maintenant installé Visual Studio 2010 Express. Quand je rentre tard, je vais donner un aller. Depuis que je suis clairement pas réglé les répertoires correctement dans Visual Studio, j'apprécie tout et de tous les commentaires, donc si vous savez quels répertoires aller où dans VS2010, ne le dis 🙂
Je pense que ceci peut aider.
Veuillez vérifier la mise à jour dans la réponse. Suffit-il ou avez-vous besoin de quelques infos? C'est l'ensemble de la procédure à exécuter OpenCV GPU. Je dis cela parce que je l'ai fait toute la procédure sur une nouvelle installation de Windows avec visual studio 2010 et a rencontré le succès avec certaines fonctions.
Oui le code est valide. C'est la façon dont OpenCV la programmation sur GPU est fait.
OriginalL'auteur sgarizvi