Comment faire un lien opencv dans QtCreator et utiliser la bibliothèque Qt
Cette question doit être double de nombreuses fois, mais il ne fonctionne tout simplement pas et, parfois, il reste encore 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
C'est la somme de tout ce que je pense que l'on doit/peut faire. (Et maintenant ça fonctionne pour moi.) Heureusement je l'ai mentionné tout depuis le début, le but est d'écrire un tutoriel très clair.
Installation d'OpenCV pour QtCreator
- J'ai déjà MS Visual Studio 2010 Professional. (J'ai une licence libre, en tant qu'étudiant) - je pense que ce n'est pas nécessaire, juste une mention
- Télécharger: Qt 5.0.1 pour les 32 bits de Windows (MinGW 4.7, 823 MO)
2.1 Installer: Avertissement, tout ce que Qt utilise (par exemple, OpenCV) doivent être dans des répertoires qui ne contiennent pas d'espaces vides dans leurs noms. - c'est à dire "Program Files" est erroné. (Mais je ne veux pas différents fichiers de programme à s'accumuler directement sur C, donc j'ai seulement fait un dossier "Programmes", dans lequel tout ce qui importe est installé) - Télécharger: cmake-2.8.10.2-win32-x86.exe - Installer pour tous les utilisateurs (ce qui peut être dans Program Files)
- Télécharger: OpenCV-2.4.0.exe, extrait de: C:\Programs\opencv24 - il va créer un dir "opencv"; ajouter un autre dossier "opencv_bin". Maintenant, il ressemble à ceci:
C:\Programs\opencv24\opencv*
C:\Programs\opencv24\opencv_bin - Définir la variable d'environnement PATH, de sorte qu'il y ait un lien de compilateur MinGW. par exemple, C:\Programs\Qt\Qt5.0.1\Tools\MinGW\bin;
- Commencer cmake-gui.exe
6.1 code source: définir la valeur par défaut dir pour OpenCV; C:\Programs\opencv24\opencv
6.2 binaires: définir la opencv_bin dir; C:\Programs\copencv24\opencv_bin
6.3 cliquez sur configurer:- Choisir MinGW Makefiles et Spécifier natif compilateurs, cliquez sur suivant
- Champ C est pour gcc.exe; C:/Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
- Champ de C++ g++.exe; C:/Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g++.exe
Champ fortran peut être vide, cliquez sur terminer
6.4 de Nombreuses lignes rouges apparaissent 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ésactivée
- CMAKE_BUILD_TYPE - cliquez sur et entrez un texte "Debug" (sans les guillemets).
Effacer le texte à partir du champ de Recherche.
6.5 cliquez sur configurer et de garder en cliquant sur configurer jusqu'à ce que toutes les lignes rouges ont disparu, alors cliquez sur générer et près cmake-gui.exe
- Aller à la terminal (~invite de commande), cd vers le répertoire où sont les versions (opencv_bin) et le type mingw32-make
- Lorsque le processus se termine, après un long temps, le type de mingw32-make install
- Ajouter dans la variable Path le chemin d'accès à la QtCreator/bin C:\Programs\Qt\Qt5.0.1\Tools\QtCreator\bin
Maintenant, j'ai créé une nouvelle application 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;
}
- - Je définir les LIBS d'ici, alors que j'utilise un répertoire opencv_bin2, parce que j'ai reconstruit opencv plusieurs fois.
- Mon projet cvImage est disponible sur GitHub et montre comment construire une application multiplate-forme avec Qt/OpenCV. Consultez le .pro fichier.
- J'ai dû utiliser "CMAKE_BUILD_TYPE = Libération" plutôt que de " Debug as donné dans ici - votre première source.
- De toute façon... je ne pouvais pas obtenir ce à travail!! Pas sûr.. poursuit-il
- Dans CMake, je reçois cette erreur: "convient Qt version "" à partir de NOTFOUND, ce code nécessite Qt 4.x"
- ce problème peut être résolu par regarder ici: stackoverflow.com/a/23998308/873072
Vous devez vous connecter pour publier un commentaire.
Enfin je commence à être heureux. Lors du réglage de cette question, j'ai dû essayer toutes les façons, comment définir les LIBS. Liste manuellement aidé, j'ai d'abord écrit en quelque sorte, à tort.
C'est la façon dont il fonctionne enfin:
Btw, si je fais des fautes de grammaire, je suis désolé pour mon anglais. 🙂
L'origine, accepté de répondre ne fonctionne pas pour moi, je suis en cours d'exécution MSVC2013 Professionnel et QT5.9. Je l'ai trouvé SIMPLE et INFAILLIBLE de la CROIX-PLATE-forme de solution qui devrait aider toute personne qui est en essayant de lier une bibliothèque externe (comme openCV) avec QT.
Les étapes énumérées ci-dessous se trouvent dans le Qt5 documentation: http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html sous "Add Library".
Permettez-moi d'ajouter une certaine spécificité à partir d'ici: