Come colbind opencv in QtCreator e usare la libreria Qt

Questa domanda deve essere ripetuta molte volte, ma semplicemente non funziona e talvolta rimane senza risposta. Le fonti di informazione sono principalmente queste
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c

Questa è la sintesi di ciò che penso si dovrebbe / può fare. (E ora funziona per me.) Spero di aver menzionato tutto fin dall’inizio, l’objective è quello di scrivere un tutorial molto chiaro.

Installazione di OpenCV per QtCreator

  1. Ho già installato MS Visual Studio 2010 Professional. (Ho una licenza gratuita come studente) – Penso che questo non sia necessario, solo una menzione
  2. Download: Qt 5.0.1 per Windows a 32 bit (MinGW 4.7, 823 MB)
    2.1 Installa: Attenzione, tutto ciò che Qt usa (es. OpenCV) deve essere nelle directory che non contengono spazi bianchi nei loro nomi. – Ad esempio “Programmi” è sbagliato. (Ma non voglio che i diversi file di programma si accumulino direttamente su C, quindi ho creato solo una cartella “Programmi” in cui è installato tutto ciò che è importante)
  3. Download: cmake-2.8.10.2-win32-x86.exe – Installazione per tutti gli utenti (può essere in Programmi)
  4. Download: OpenCV-2.4.0.exe, estrai in: C: \ Programmi \ opencv24 – creerà una directory “opencv”; aggiungi un’altra cartella “opencv_bin”. Ora sembra così:
    C: \ Programmi \ opencv24 \ OpenCV *
    C: \ Programmi \ opencv24 \ opencv_bin
  5. Imposta la variabile d’ambiente PATH , in modo che ci sia un collegamento al compilatore MinGW. ad es. C: \ Programmi \ Qt \ Qt5.0.1 \ Strumenti \ MinGW \ bin;
  6. Avvia cmake-gui.exe
    6.1 codice sorgente: imposta la dir predefinita per OpenCV; C: \ Programmi \ opencv24 \ OpenCV
    6.2 file binari: imposta la cartella opencv_bin; C: \ Programmi \ copencv24 \ opencv_bin
    6.3 fare clic su configura:
    • Scegli Makefile MinGW e Specifica compilatori nativi , fai clic su Avanti
    • Il campo C è per gcc.exe; C: /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • Field C ++ è per g ++. Exe; C:. /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++ exe
    • Fortran di campo può essere vuoto, fare clic su Fine

    6.4 Appariranno molte linee rosse Nel campo di ricerca inserire uno ad uno: WITH_QT, WITH_TBB, WITH_IPP, WITH_CUDA, CMAKE_BUILD_TYPE

    • WITH_QT – deve essere selezionato.
    • WITH_TBB, WITH_IPP, WITH_CUDA – deve essere deselezionato
    • CMAKE_BUILD_TYPE: fai clic e inserisci un testo “Debug” (senza virgolette).
    • Cancella il testo dal campo di ricerca.

    6.5 fare clic su configura e continua a fare clic su configura fino a quando non sono scomparse tutte le linee rosse, quindi fai clic su Genera e chiudi cmake-gui.exe

  7. Vai al terminale (~ prompt dei comandi) , cd alla directory dove sono le build (opencv_bin) e digita mingw32-make
  8. Quando il processo termina dopo un lungo periodo di tempo, digita mingw32-make install
  9. Aggiungi nella variabile Path il percorso di QtCreator / bin C: \ Programmi \ Qt \ Qt5.0.1 \ Tools \ QtCreator \ bin

Ora ho creato una nuova app per console in 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 

E il file principale:

 //main.cpp #include  #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; } 

Finalmente sto iniziando a essere felice. Quando aggiustavo questa domanda dovevo provare tutti i modi, come definire la LIBS. Elencarli manualmente ha aiutato, inizialmente li ho scritti in qualche modo erroneamente.

Ecco come funziona finalmente:

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

A proposito di errori di grammatica, mi dispiace per il mio inglese. 🙂

La risposta originariamente accettata non ha funzionato per me, sto eseguendo MSVC2013 Professional e QT5.9. Ho trovato una soluzione SIMPLE e SUREFIRE CROSS-PLATFORM che dovrebbe aiutare chiunque stia tentando di colbind una libreria esterna (come openCV) con QT.

I passaggi elencati di seguito sono disponibili nella documentazione Qt5: [ http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html%5D%5B1%5D nella sezione “Aggiungi libreria”.

  1. Fai clic con il pulsante destro del mouse sul file di progetto situato nel “riquadro del progetto” sul lato sinistro del creatore … e seleziona “Aggiungi libreria …”
  2. Segui le istruzioni del wizard

Permettetemi di aggiungere una certa specificità da qui …

  1. Seleziona “Libreria esterna”
  2. Per il “File Libreria” vai al tuo file opencv_worldXXX.lib (o file opencv_worldXXXd.lib, noterai che specificando solo l’uno o l’altro la procedura guidata ha una casella di controllo che include automaticamente l’altro) [es. … \ OpenCV \ build \ x64 \ VC12 \ lib \ opncv_world310.lib]
  3. Per “Includi cartella” vai alla cartella “include” all’interno della build. [ex. … \ OpenCV \ build \ include]
  4. Seleziona il tuo sistema operativo, libreria dynamic / statica (qualunque sia il caso)
  5. Premi NEXT, CLEAN UP e RUN!