2011-07-17 2 views
2

comme la sortie d'OpenCV 2.3 est enfin terminée, j'ai voulu compiler et installer cette dernière version sur mon système. Comme je travaille souvent avec Qt et le QtCreator, je voulais bien sûr pouvoir l'utiliser dans mes projets Qt. J'ai essayé plusieurs méthodes maintenant pour quelques heures, mais toujours obtenir des erreurs:En utilisant OpenCV 2.3 avec Qt dans QtCreator

Premier essai: 2.3 avec OpenCV Compiler WITH_QT

D'abord, je voulais le faire comme je l'ai fait avec la version 2.2 qui a bien fonctionné pour moi. Pour cela, je suivais ce guide: http://knowtheabc.wordpress.com/2011/02/25/windows-opencv-and-qt-creator/

  • Téléchargé le code source
  • Mettre en place CMake et dit pour créer MinGW Makefiles et spécifié les chemins du g++.exe, gcc.exe et qmake.exe dans mon C: \ Qt .. .chemins, vérifié WITH_QT et généré des Makefiles pour une version.
  • construit et installé dans un shell en utilisant mingw32-make et mingw32-make install

Après cela a été terminé avec succès, je voulais juste ajouter les chemins à mon dossier « .pro » et a été en mesure de construire un logiciel agréable qui utilise OpenCV (à l'époque où j'ai utilisé la version 2.2). Fondamentalement, la dernière partie est décrite ici: http://knowtheabc.wordpress.com/2011/02/25/opencv-in-qt/

J'ai donc essayé la même chose avec la version 2.3 qui a été compilée avec succès comme avec l'ancienne version. Il construit même mon programme d'exemple, mais dès que je l'exécute, il se ferme à nouveau et retourne: -1073741515

Deuxième essai: Utilisation de la Superpack OpenCV pré-construit en utilisant MinGW

Comme la première méthode n'a pas travail j'ai essayé d'utiliser les versions de pré-construction. Bien que le WITH_QT n'ait pas été activé, je voulais quand même essayer. J'ai donc téléchargé le superpack, l'ai extrait et l'ai mis quelque part. Je voulais donc faire la même chose que je faisais avant et ajouté les chemins à inclure le dossier et les dll à mon dossier « .pro »:

INCLUDEPATH+= C:/workspace/opencv/OpenCV2.3/build/include 
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/*.dll 

Comme compilateur je le compilateur MinGW qui vient avec le Qt en cours SDK. Mais cette plante tout bâtiment:

C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/libopencv_calib3d230.dll: file not recognized: File format not recognized 
collect2: ld returned 1 exit status 
mingw32-make[1]: *** [release\CoinDetector.exe] Error 1 
mingw32-make: *** [release] Error 2 

essayer Troisième: Tout comme la seconde, mais avec l'aide du compilateur VC2008

J'ai essayé la même chose avec le compilateur VC2008 qui est fourni avec le SDK Qt ainsi . J'ai donc sélectionné le compilateur et adapté le chemin dans le ".fichier pro » à utiliser:

LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/*.dll 

Mais cette plante aussi avec une erreur qu'il ne peut pas lire le dll:

C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/opencv_calib3d230.dll : fatal error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x2F0 nicht möglich. 

Voici mes paramètres:

  • Win7 Professional x64
  • Dernier Qt SDK installé (4.7.3)
  • OpenCV version 2.3

Est-ce que quelqu'un a une idée de ce qui pourrait être mal ici? Serait heureux pour toute aide!

Répondre

6

Je viens de recevoir mon QT 4.7.3 pour fonctionner avec OpenCV2.3. Malheureusement, j'ai dû installer VC++ 2008 Express Edition et le débogueur CDB de Microsoft (les deux sont des cadeaux de Microsoft). La bonne partie est que je peux maintenant développer pour Opencv à la fois IDE, VS 2008, et Qt Creator.

Ce sont les paramètres de mon fichier .pro:

INCLUDEPATH += C:/OpenCV2.3/build/include 
INCLUDEPATH += C:/OpenCV2.3/build/include/opencv 

LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_calib3d230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_contrib230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_core230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_features2d230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_flann230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_highgui230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_imgproc230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_objdetect230.lib 
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_video230.lib 

Rappelez-vous, sélectionnez le compilateur MSVC dans vos projets Paramètres

J'ai essayé, je ne sais pas combien d'approches différentes pour le rendre travailler avec MinGW, mais pas le bon à ce jour. Je suis aussi dans Windows 7 64 bits ... mais je suis en train de développer pour 32 bits, je suppose que si j'utilise les bibliothèques x64, je pourrais avoir des projets 64 bits à travailler.

Bonne chance,

Andres

+0

bien en tant qu'étudiant J'ai le Visual Studio 2008 complet installé depuis que je l'ai obtenu via MSDNAA. Donc, vous utilisez la version pré-construite, mais incluez simplement les fichiers lib au lieu des dlls? Cela vaut la peine d'essayer ... merci pour l'instant – evident

+0

OK, je viens d'essayer vos trucs et il ne donne plus d'erreurs lors de la compilation ... mais maintenant je reçois la même erreur que dans la version mingw je me suis compilé dans "First essayez "- la valeur de retour de: -1073741515 ... donc tout le problème semble se résumer à corriger cette erreur, alors il devrait fonctionner avec le compilateur Visual Studio et MinGW aussi bien ... – evident

+0

Avez-vous modifié votre variable d'environnement PATH? La mine ressemble à l'enfer, parce que j'ai continué à ajouter jusqu'à ce que cela fonctionne: Spécialement c: \ OPenCV2.3 \ build \ x86 \ vc9 \ bin; C: \ opencv2.3 \ build \ x86 \ mingw \ bin; c: \ mingw \ bin; c: \ Program Files (x86) \ Microsoft Visual Studion 9.0 \ VC \ bin ... – MisterWalrus

1

Evident,

Je suis aussi loin que l'erreur -1073741515 également aujourd'hui. Il s'est avéré que le problème était lié aux DLL de Qt que j'avais dans le dossier de libération ... J'utilisais toujours les versions de mingw32 et pas celles de msvc2008. J'ai donc copié les fichiers msvc2008 dll dans mon dossier Release et j'ai finalement réussi à exécuter mon application Qt.