Cómo vincular opencv en QtCreator y usar la biblioteca Qt

Esta pregunta debe duplicarse muchas veces, pero simplemente no funciona y, a veces, sigue sin respuesta. Las fonts de información son principalmente estas
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c

Esta es la sum de lo que creo que uno debería / puede hacer. (Y ahora funciona para mí.) Espero haber mencionado todo desde el principio, el objective es escribir un tutorial muy claro.

Instalación de OpenCV para QtCreator

  1. Ya tengo instalado MS Visual Studio 2010 Professional. (Tengo una licencia gratuita como estudiante) – Creo que esto no es necesario, solo una mención
  2. Descargar: Qt 5.0.1 para Windows de 32 bits (MinGW 4.7, 823 MB)
    2.1 Instalación: Advertencia, todo lo que Qt usa (por ejemplo, OpenCV) debe estar en directorios que no contengan espacios en blanco en sus nombres. – es decir, “Archivos de progtwig” es incorrecto. (Pero no quiero que se acumulen diferentes archivos de progtwig directamente en C, así que solo he creado una carpeta “Progtwigs” en la que está instalado todo lo importante)
  3. Descargar: cmake-2.8.10.2-win32-x86.exe – Instalar para todos los usuarios (esto puede estar en Archivos de progtwig)
  4. Descargar: OpenCV-2.4.0.exe, extraer a: C: \ Programs \ opencv24 – creará un directorio “opencv”; agregue otra carpeta “opencv_bin”. Ahora se ve así:
    C: \ Programs \ opencv24 \ opencv *
    C: \ Programs \ opencv24 \ opencv_bin
  5. Establezca la variable de entorno PATH para que haya un enlace al comstackdor MinGW. por ejemplo, C: \ Progtwigs \ Qt \ Qt5.0.1 \ Tools \ MinGW \ bin;
  6. Inicie cmake-gui.exe
    Código fuente 6.1 : establece el directorio predeterminado para OpenCV; C: \ Programs \ opencv24 \ opencv
    6.2 binarios: establezca el directorio de opencv_bin; C: \ Programs \ copencv24 \ opencv_bin
    6.3 haga clic en configurar:
    • Elija MinGW Makefiles y especifique comstackdores nativos , haga clic en siguiente
    • El campo C es para gcc.exe; C: /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • El campo C ++ es para g ++. Exe; C: /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++. Exe
    • El campo fortran puede estar vacío, haga clic en finalizar

    6.4 Aparecerán muchas líneas rojas En el campo de búsqueda, ingrese una por una: WITH_QT, WITH_TBB, WITH_IPP, WITH_CUDA, CMAKE_BUILD_TYPE

    • WITH_QT – debe ser seleccionado.
    • WITH_TBB, WITH_IPP, WITH_CUDA – no se deben seleccionar
    • CMAKE_BUILD_TYPE: haga clic e ingrese un texto “Depurar” (sin comillas).
    • Borre el texto del campo Buscar.

    6.5 haga clic en configurar y siga haciendo clic en configurar hasta que todas las líneas rojas se hayan ido, luego haga clic en generar y cierre cmake-gui.exe

  7. Vaya a la terminal (~ símbolo del sistema) , cd al directorio donde están las comstackciones (opencv_bin) y escriba mingw32-make
  8. Cuando el proceso finaliza después de un largo tiempo, escriba mingw32-make install
  9. Agregue a la variable Path la ruta al QtCreator / bin C: \ Programs \ Qt \ Qt5.0.1 \ Tools \ QtCreator \ bin

Ahora he creado una nueva aplicación de consola en 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 

Y el archivo principal:

 //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 estoy empezando a ser feliz. Al ajustar esta pregunta, tuve que probar todas las formas, cómo definir LIBS. Listarlos manualmente ayudó, al principio los escribí de alguna manera erróneamente.

Así es como funciona finalmente:

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

Por cierto, si he cometido errores de gramática, lo siento por mi inglés. 🙂

La respuesta originalmente aceptada no funcionó para mí, estoy ejecutando MSVC2013 Professional y QT5.9. Encontré una solución SIMPLE y SUREFIRE CROSS-PLATFORM que debería ayudar a cualquiera que intente vincular una biblioteca externa (como openCV) con QT.

Los pasos enumerados a continuación se encuentran en la documentación de Qt5: [ http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html%5D%5B1%5D en la sección “Agregar biblioteca”.

  1. Haga clic derecho en el archivo del proyecto ubicado en el ‘panel del proyecto’ en el lado izquierdo del creador … y seleccione “Agregar biblioteca …”
  2. Sigue las instrucciones del asistente

Permítanme agregar algo de especificidad desde aquí …

  1. Seleccione “Biblioteca externa”
  2. Para el “Archivo de la Biblioteca” navegue a su archivo opencv_worldXXX.lib (o archivo opencv_worldXXXd.lib, notará que especificando solo uno u otro el asistente tiene una casilla que incluye la otra automáticamente) [ej. … \ opencv \ build \ x64 \ vc12 \ lib \ opncv_world310.lib]
  3. Para la “Carpeta de inclusión” vaya a la carpeta “incluir” dentro de la comstackción. [ex. … \ opencv \ build \ include]
  4. Seleccione su sistema operativo, biblioteca dinámica / estática (lo que sea apropiado)
  5. ¡Presione NEXT, CLEAN UP y RUN!