2013-04-08 3 views
39

Cette question doit être dupliquée plusieurs fois, mais cela ne fonctionne tout simplement pas et parfois elle reste sans réponse. Les sources d'information sont principalement ces
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c
Comment lier opencv dans QtCreator et utiliser la bibliothèque Qt

C'est la somme de ce que je pense que l'on doit/peut faire. (Et maintenant ça marche pour moi.) J'espère avoir tout mentionné dès le début, le but étant d'écrire un tutoriel très clair.

Installation de OpenCV pour QtCreator

  1. J'ai déjà MS Visual Studio 2010 Professional installé. (Je possède une licence libre comme étudiant) - Je pense que ce n'est pas nécessaire, juste une mention
  2. Télécharger: Qt 5.0.1 pour Windows 32 bits (MinGW 4.7, 823 Mo)
    2.1 Installer: Attention, tout ce que Qt utilise (par exemple OpenCV) doit être dans les répertoires qui ne contiennent pas d'espaces blancs dans leurs noms. - c'est-à-dire "Program Files" est incorrect. (Mais je ne veux pas que des fichiers programme différents s'accumulent directement sur C, donc j'ai seulement créé un dossier "Programmes" dans lequel tout est installé)
  3. Télécharger: cmake-2.8.10.2-win32-x86 .exe - Installer pour tous les utilisateurs (ce qui peut être dans Program Files)
  4. Télécharger: OpenCV-2.4.0.exe, extrait à: C: \ Programmes \ opencv24 - il va créer un répertoire « OpenCV "; ajouter un autre dossier "opencv_bin". il ressemble maintenant à ceci:
    C: \ Programmes \ opencv24 \ OpenCV *
    C: \ Programmes \ opencv24 \ opencv_bin
  5. Set variable d'environnement PATH, de sorte qu'il y ait un lien vers le compilateur MinGW . par exemple. C: \ Programmes \ Qt \ Qt5.0.1 \ Outils \ MinGW \ bin;
  6. Démarrer cmake-gui.exe
    6.1 code source: définir le répertoire par défaut pour OpenCV; C: \ Programmes \ opencv24 \ opencv
    6.2 binaires: Définissez le répertoire opencv_bin; C: \ Programmes \ copencv24 \ opencv_bin
    6.3 cliquez sur Configurer:
    • Choisissez MinGW Makefiles et Spécifier les compilateurs natifs, cliquez sur Suivant
    • champ C est pour gcc.exe; C: /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • Champ C++ est pour g ++ .exe; C:. /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++ exe
    • Champ Fortran peut être vide, cliquez sur Terminer
    6.4 Plusieurs lignes rouges apparaîtront Pour le champ de recherche, entrez un par un: WITH_QT, WITH_TBB, WITH_IPP, WITH_CUDA, CMAKE_BUILD_TYPE
    • WITH_QT - doit être sélectionné.
    • WITH_TBB, WITH_IPP, WITH_CUDA - doit être désélectionné
    • CMAKE_BUILD_TYPE - cliquez sur et entrez un texte "Debug" (sans guillemets).
    • Efface le texte du champ de recherche.
    6.5 cliquez sur Configurer et continuez à cliquer configurer jusqu'à ce que toutes les lignes rouges ont disparu, puis cliquez générer et prèsborne cmake-gui.exe
  7. Aller à la (~ invite de commande), cd dans le répertoire où sont les builds (opencv_bin) et le type mingw32-make
  8. Lorsque le processus se termine après une longue période, le type mingw32-make install
  9. Ajouter dans la variable Path le chemin vers le QtCreator/bin C: \ Programmes \ Qt \ Qt5.0.1 \ Tools \ QtCreator \ bin

Maintenant, j'ai créé une nouvelle application de console dans QtCreator.

//cvHello.pro 
QT  += core 
QT  -= gui 

TARGET = cvHello 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 
INCLUDEPATH += C:/Programs/opencv24/opencv_bin2/install/include 
LIBS += "C:/Programs/opencv24/opencv_bin2/bin/*.dll" 

SOURCES += main.cpp 
OTHER_FILES += \ 
    img.JPG 

Et le fichier principal:

//main.cpp 
#include <iostream> 
#include "opencv2/core/core.hpp" 
#include "opencv2/highgui/highgui.hpp" 
#include "opencv/cv.h" 

using namespace std; 

int main() 
{ 
    cout << "Hello World!" << endl; 

    cv::Mat mat; 
    mat = cv::imread("img.JPG"); 
    cvNamedWindow("hello"); 
    cv::imshow("hello",mat); 

    cvWaitKey(0); 

    return 0; 
} 
+0

Je définis ici LIBS de sorte que j'utilise un répertoire opencv_bin2, car j'ai reconstruit opencv plusieurs fois. –

+3

Mon projet [cvImage] (https://github.com/karlphillip/GraphicsProgramming/tree/master/cvVideo) est disponible sur GitHub et montre comment créer une application multi-plateforme avec Qt/OpenCV. Vérifiez le fichier **. Pro **. – karlphillip

+0

J'ai dû utiliser "CMAKE_BUILD_TYPE = Release" plutôt que Debug comme indiqué dans [ici] (http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml) - votre première source. – inblueswithu

Répondre

10

Enfin je commence à être heureux. En ajustant cette question, j'ai dû essayer tous les moyens, comment définir LIBS. Les énumérer manuellement les a aidés, au début je les ai écrits d'une manière ou d'une autre à tort.

Voilà comment cela fonctionne enfin:

LIBS += -LC:\\Programs\\opencv24\\opencv_bin2\\bin \ 
    libopencv_core240d \ 
    libopencv_highgui240d \ 
    libopencv_imgproc240d \ 
    libopencv_features2d240d \ 
    libopencv_calib3d240d \ 

BTW si je l'ai fait des erreurs de grammaire, je suis désolé pour mon anglais. :)

+0

Je ne sais toujours pas quel était le problème avec l'original LIBS + = "C:/Programmes/opencv24/opencv_bin2/bin/*. dll" –

+0

vous devez ajouter .libs car il contenir des informations sur les fonctions à l'intérieur de DLL, et cette information est nécessaire lors de la construction du projet, de sorte que votre exe fonctionnera, puis vérifier ces informations, puis charger la DLL nécessaire. –

+0

Wajdy: Voulez-vous dire pas une extension .lib ou .libs, mais plutôt tous les fichiers dans un répertoire lib? Probablement ceux dans opencv_bin/lib et non opencv_bin/install/lib.Mais quand je change simplement -LC: \\ Programmes \\ opencv24 \\ opencv_bin2 \\ bin \ ... en -LC: \\ Programmes \\ opencv24 \\ opencv_bin2 \\ lib \ ... alors ça ne marche pas . Êtes-vous en train de dire que la solution avec \\ bin \ ... est fausse? –

Questions connexes