Comenzando con OpenCV 2.4 y MinGW en Windows 7

¿Cómo instalo OpenCV 2.4 y compilo mi código con MinGW?

1. Instalación de OpenCV 2.4.3

Primero, obtenga OpenCV 2.4.3 de sourceforge.net. Es una extracción automática de archivos, así que simplemente haga doble clic en el archivo para comenzar la instalación. Instálelo en un directorio, digamos C:\ .

OpenCV autoextraíble

Espere hasta que se extraigan todos los archivos. C:\opencv un nuevo directorio C:\opencv que contiene archivos de encabezado OpenCV, bibliotecas, muestras de código, etc.

Ahora necesita agregar el C:\opencv\build\x86\mingw\bin a la RUTA del sistema. Este directorio contiene archivos DLL OpenCV que son necesarios para ejecutar su código.

Abra el Panel de controlSistemaConfiguración avanzada del sistemaPestaña AvanzadoVariables de entorno …

Verá una ventana como la que se muestra a continuación:

Agregue el directorio de OpenCV DLL a la ruta del sistema

En la sección Variables del sistema,
seleccione Ruta (1), haga clic en Editar … (2), agregue C:\opencv\build\x86\mingw\bin (3) y luego haga clic en Aceptar .

Esto completará la instalación de OpenCV 2.4.3 en su computadora.


2. Instalar el conjunto de comstackdores MinGW

Le recomiendo que use gcc (Colección comstackdora GNU) para comstackr su código. gcc es el conjunto de comstackdores ampliamente disponible en sistemas Linux y MinGW es el puerto nativo para Windows.

Descargue el instalador MinGW de Sourceforge.net y haga doble clic para comenzar la instalación. Simplemente siga el asistente y seleccione el directorio que se instalará, digamos C:\MinGW .

Seleccionar directorio en instalación MinGW

Seleccione “C Compiler” y “C ++ Compiler” para instalar.

Seleccionar componentes para ser instalados

El instalador descargará algunos paquetes de Internet, por lo que deberá esperar un tiempo. Una vez finalizada la instalación, agregue C:\MinGW\bin a la ruta del sistema siguiendo los pasos descritos anteriormente.

Agregue el directorio MinGW bin a la ruta del sistema

Para probar si su instalación MinGW es exitosa, abra un cuadro de línea de comando y escriba: gcc . Si todo está bien, mostrará este mensaje:

 gcc: fatal error: no input files comstacktion terminated 

Esto completa la instalación de MinGW, ahora es el momento de escribir su “¡Hola mundo!” progtwig.


3. Escribe un código de muestra

Abra su editor de texto y escriba el siguiente código y guarde el archivo en loadimg.cpp .

 #include "opencv2/highgui/highgui.hpp" #include  using namespace cv; using namespace std; int main(int argc, char** argv) { Mat im = imread(argc == 2 ? argv[1] : "lena.jpg", 1); if (im.empty()) { cout << "Cannot open image!" << endl; return -1; } imshow("image", im); waitKey(0); return 0; } 

Coloque lena.jpg o cualquier imagen que desee en el mismo directorio con el archivo anterior. Abra un cuadro de línea de comandos y compile el código anterior escribiendo:

 g++ -I"C:\opencv\build\include" -L"C:\opencv\build\x86\mingw\lib" loadimg.cpp -lopencv_core243 -lopencv_highgui243 -o loadimg 

Si se comstack correctamente, creará un ejecutable llamado loadimg.exe .

Tipo:

 loadimg 

Para ejecutar el progtwig. Resultado:

El resultado de su primer programa OpenCV


4. ¿A dónde ir desde aquí?

Ahora que su entorno OpenCV está listo, ¿qué sigue?

  1. Vaya a las muestras dir → C:\opencv\samples\cpp .
  2. Lee y comstack un código.
  3. Escribe tu propio código

Las instrucciones en @bsdnoobz answer son de hecho útiles, pero no hicieron que OpenCV funcionara en mi sistema.

Aparentemente tenía que comstackr la biblioteca para que funcione, y no contar con los binarios precomstackdos (lo que causó que mis progtwigs fallaran, probablemente debido a incompatibilidad con mi sistema).

Logré que funcionara, y escribí una guía completa para comstackr e instalar OpenCV, y configurar Netbeans para que trabaje con él.

Para completar, también se proporciona a continuación.


Cuando comencé a usar OpenCV, encontré dos dificultades principales:

  1. Hacer que mis progtwigs NO se cuelguen inmediatamente.
  2. Hacer que Netbeans juegue bien, y especialmente conseguir tiempo para que el depurador funcione.

Leí muchos tutoriales y artículos de “cómo hacerlo”, pero ninguno fue exhaustivo y exhaustivo. Eventualmente logré establecer el ambiente; y después de un tiempo de usar esta (gran) biblioteca, decidí escribir este pequeño tutorial, que con suerte ayudará a otros.

Las tres partes de este tutorial son:

  1. Comstackndo e instalando OpenCV.
  2. Configurando Netbeans.
  3. Un progtwig de ejemplo.

El entorno que uso es Windows 7, OpenCV 2.4.0, Netbeans 7 y MinGW 3.20 (con el comstackdor gcc 4.6.2).

Suposiciones : ya tiene MinGW y Netbeans instalados en su sistema.

Comstackndo e instalando OpenCV

Al descargar OpenCV, el archivo ya contiene binarios precomstackdos (bibliotecas comstackdas y DLL) en la carpeta ‘comstackr’. Al principio, traté de usar esos binarios, suponiendo que alguien ya había hecho el trabajo de comstackr para mí. Eso no funcionó.

Eventualmente, pensé que tenía que comstackr toda la biblioteca en mi propio sistema para que funcione correctamente.

Afortunadamente, el proceso de comstackción es bastante fácil, gracias a CMake. CMake (siglas de Cross-platform Make) es una herramienta que genera makefiles específicos para su comstackdor y plataforma. Utilizaremos CMake para configurar nuestros edificios y configuraciones de comstackción, generar un ‘archivo MAKE’ y luego comstackr la biblioteca.

Los pasos son:

  1. Descargue CMake e instálelo (en el asistente de instalación elija agregar CMake al sistema PATH).
  2. Descarga la versión de ‘lanzamiento’ de OpenCV .
  3. Extraiga el archivo a un directorio de su elección. c:/opencv/ .
  4. Inicie la GUI de CMake.
    1. Busque el directorio fuente c:/opencv/ .
    2. Elija dónde construir los binarios. Elegí c:/opencv/release .
      Configuración CMake - 1
    3. Haga clic en ‘Configurar’. En la pantalla que se abre, elija el generador de acuerdo con su comstackdor. En nuestro caso, es ‘MinGW Makefiles’.
      Configuración CMake - 2
    4. Espere a que todo se cargue, luego verá esta pantalla:
      Configuración CMake - 3
    5. Cambie la configuración si lo desea o deje los valores predeterminados. Cuando termine, presione ‘Configurar’ nuevamente. Debería ver “Configuración realizada” en la ventana de registro, y el fondo rojo debería desaparecer de todas las celdas.
      Configuración CMake - 4
    6. En este punto, CMake está listo para generar el archivo MAKE con el que comstackremos OpenCV con nuestro comstackdor. Haga clic en ‘Generar’ y espere a que se genere el archivo MAKE. Cuando finalice el proceso, debería ver ‘Generación hecha’. A partir de este momento ya no necesitaremos CMake.
  5. Abrir el shell MinGW (también se pueden realizar los siguientes pasos desde el símbolo del sistema de Windows).
    1. Ingrese al directorio c:/opencv/release/ .
    2. Escriba mingw32-make y presione enter. Esto debería comenzar el proceso de comstackción.
      MinGW Make
      MinGW Make - compilación
    3. Cuando finaliza la comstackción, los binarios de OpenCV están listos para ser utilizados.
    4. Para mayor comodidad, debemos agregar el directorio C:/opencv/release/bin al sistema PATH . Esto asegurará que nuestros progtwigs puedan encontrar las DLL necesarias para ejecutar.

Configurando Netbeans

Se debe indicar a Netbeans dónde encontrar los archivos de encabezado y las bibliotecas comstackdas (que se crearon en la sección anterior).

Los archivos de encabezado son necesarios por dos razones: para la comstackción y para completar el código. Las bibliotecas comstackdas son necesarias para la etapa de vinculación.

Nota: Para que la depuración funcione, las DLL de OpenCV deben estar disponibles, por lo que añadimos el directorio que las contiene al sistema PATH (sección anterior, paso 5.4).

En primer lugar, debe verificar que Netbeans esté configurado correctamente para funcionar con MinGW. Vea la captura de pantalla a continuación y verifique que su configuración sea correcta (considerando que las rutas cambian según su propia instalación). También tenga en cuenta que el comando make debe ser de msys y no de Cygwin.

Configuración MinGW de Netbeans

A continuación, para cada nuevo proyecto que cree en Netbeans, debe definir la ruta de inclusión (el directorio que contiene los archivos de encabezado), la ruta de las bibliotecas y las bibliotecas específicas que tiene la intención de usar. Haga clic derecho en el nombre del proyecto en el panel de ‘proyectos’, y elija ‘propiedades’. Agregue la ruta de inclusión (modifique la ruta según su propia instalación):

Proyecto de Netbeans Incluir ruta

Agregue la ruta de las bibliotecas:

Ruta de las bibliotecas de Netbeans

Agregue las bibliotecas específicas que tiene la intención de usar. Estas bibliotecas se vincularán dinámicamente a su progtwig en la etapa de enlace. Por lo general, necesitará la biblioteca core más cualquier otra biblioteca de acuerdo con las necesidades específicas de su progtwig.

Netbeans incluyen bibliotecas

Eso es todo, ¡ahora está listo para usar OpenCV!

Resumen

Estos son los pasos generales que debe completar para instalar OpenCV y usarlo con Netbeans:

  1. Comstack OpenCV con tu comstackdor.
  2. Agregue el directorio que contiene las DLL a su sistema PATH (en nuestro caso: c: / opencv / release / bin).
  3. Agregue el directorio que contiene los archivos de encabezado a la ruta de inclusión de su proyecto (en nuestro caso: c: / opencv / build / include).
  4. Agregue el directorio que contiene las bibliotecas comstackdas a la ruta de las bibliotecas de su proyecto (en nuestro caso: c: / opencv / release / lib).
  5. Agregue las bibliotecas específicas que necesita vincular con su proyecto (por ejemplo: libopencv_core240.dll.a).

Ejemplo – “Hola mundo” con OpenCV

Aquí hay un pequeño progtwig de ejemplo que dibuja el texto “Hello World:)” en una ventana de la GUI. Puede usarlo para verificar que su instalación funcione correctamente. Después de comstackr y ejecutar el progtwig, debería ver la siguiente ventana:

OpenCV Hello World

 #include "opencv2/opencv.hpp" #include "opencv2/highgui/highgui.hpp" using namespace cv; int main(int argc, char** argv) { //create a gui window: namedWindow("Output",1); //initialize a 120X350 matrix of black pixels: Mat output = Mat::zeros( 120, 350, CV_8UC3 ); //write text on the matrix: putText(output, "Hello World :)", cvPoint(15,70), FONT_HERSHEY_PLAIN, 3, cvScalar(0,255,0), 4); //display the image: imshow("Output", output); //wait for the user to press any key: waitKey(0); return 0; } 

Esto no funciona para mí Pasé unos días siguiendo cada tutorial que encontré en la red y finalmente compilé mis propios binarios. Todo se describe aquí: OpenVC 2.4.5, eclipse CDT Juno, error MinGW 0xc0000005

Después de muchas pruebas y errores, decidí seguir este tutorial y comstackr mis propios binarios, ya que parece que mucha gente se queja de que los binarios precomstackdos NO funcionan para ellos. Eclipse CDT Juno ya estaba instalado.

Mi procedimiento fue el siguiente:

  1. Descargue e instale MinGW y agregue al sistema PATH con c: / mingw / bin
  2. Descargue cmake desde http://www.cmake.org e instálelo
  3. Descargar OpenCV2.4.5 versión de Windows
  4. Instalar / descomprimir Opencv a C: \ OpenCV245PC \ (README, index.rst y CMakeLists.txt están ahí con todas las subcarpetas)
  5. Ejecute la herramienta de la GUI de CMake, luego
  6. Elija C: \ OpenCV245PC \ como fuente
  7. Elija el destino, C: \ OpenCV245MinGW \ x86 donde construir los binarios
  8. Presione el botón Configurar, elija MinGW Makefiles como el generador. Hay algunas luces rojas en la ventana, elija las opciones que necesite.
  9. Presione el botón Configurar nuevamente . La configuración ya está hecha.
  10. Presione el botón Generar.
  11. Salga del progtwig cuando la generación esté lista.
  12. Salga del progtwig Cmake.
  13. Ejecute el modo de línea de comando (cmd.exe) y vaya al directorio de destino C: \ OpenCV245MinGW \ x86
  14. Escriba “mingw32-make”. Verás un progreso en la creación de binarios. Si no se encuentra el comando, debe asegurarse de que el sistema PATH se haya agregado con c: / mingw / bin. La construcción continúa de acuerdo con las opciones elegidas para una finalización.
  15. En el sistema de Windows PATH (Mi PC> botón derecho, haga clic en> Propiedades> Avanzado> Variables de entorno> Ruta), agregue el directorio bin del destino, C: \ OpenCV245MinGW \ x86 \ bin
  16. REINICIAR LA COMPUTADORA
  17. Vaya al Eclipse CDT IDE, cree un progtwig C ++ usando el código de muestra OpenCV (Puede usar el código de la parte superior de este tema).
  18. Vaya a Proyecto> Propiedades> Comstackción C / C ++> Configuraciones> Comstackdor GCC C ++> Incluye, y agregue la carpeta fuente OpenCV “C: \ OpenCV245PC \ build \ include”
  19. Vaya a Proyecto> Propiedades> Comstackción C / C ++> Configuraciones> Enlazador C ++ MinGW> Bibliotecas, y añada a las Bibliotecas (-l) UNA POR UNA (esto podría variar de proyecto a proyecto, puede agregarlas todas si lo desea o algunos de ellos sólo los que usted necesita para su proyecto): opencv_calib3d245 opencv_contrib245 opencv_core245 opencv_features2d245 opencv_flann245 opencv_gpu245 opencv_highgui245 opencv_imgproc245 opencv_legacy245 opencv_ml245 opencv_nonfree245 opencv_objdetect245 opencv_photo245 opencv_stitching245 opencv_video245 opencv_videostab245
  20. Agregue la carpeta de la biblioteca OpenCV construida, “C: \ OpenCV245MinGW \ x86 \ lib” a la ruta de búsqueda de la Biblioteca (-L) .

Puede usar este código para probar su configuración:

 #include  #include  #include  #include  using namespace std; using namespace cv; int main() { Mat img = imread("c:/lenna.png", CV_LOAD_IMAGE_COLOR); namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); imshow("MyWindow", img); waitKey(0); return 0; } 

No te olvides de poner la imagen en la C: / (o donde sea que te parezca adecuado, solo asegúrate de que el eclipse haya leído el acceso).

Si instaló Opencv 2.4.2, entonces necesita cambiar el -lopencv_core240 a -lopencv_core242

Yo cometí el mismo error.

En Windows 64bits, funciona:

  1. Descargue opencv-3.0 (beta) , MinGW (herramienta de línea de comandos);
  2. Agregue la carpeta de bin respectiva a la ruta de var;
  3. Cree una carpeta “liberar” (podría ser cualquier nombre) en;
  4. En la carpeta creada, abra el terminal de solicitud y ejecute los comandos siguientes;
  5. Copie y pase este comando

    cmake -G "MinGW Makefiles" -D CMAKE_CXX_COMPILER=mingw32-g++.exe -D WITH_IPP=OFF MAKE_MAKE_PROGRAM=mingw32-make.exe ..\

  6. Ejecute este comando mingw32-make

  7. Ejecute este comando mingw32-make install

HECHO

Como señaló @Nenad Bulatovic, uno debe tener cuidado al agregar bibliotecas (19º paso). no se deben agregar espacios al final mientras se agrega cada biblioteca línea por línea. de lo contrario, mingw se vuelve loco.