C++, OpenCV y Netbeans

Temas sobre programacion en C/C++ (no Visual C++)

Moderador:ivancp

herbertlimachi
Novato
Novato
Mensajes:2
Registrado:Lun Dic 31, 2007 8:39 pm
C++, OpenCV y Netbeans

Mensaje por herbertlimachi » Jue Abr 19, 2012 12:11 am

Nombre: Herbert Juvenal Limachi Laricano
E-mail: hlimachi[at]gmail[dot]com :wink:

:arrow: Windows 7 de 32 bits

:arrow: Descargar Microsoft Visual Studio Visual C++ 2010 Express

* Link: microsoft[dot]com/visualstudio/en-us/products/2010-editions/visual-cpp-express
* Archivo: Microsoft Visual Studio 10.exe

:arrow: Instalar Microsoft Visual Studio Visual C++ 2010 Express

* Durante la instalación desactivar las opciones:
~ Microsoft Silverlight
~ Microsoft SQL Server 2008 Express Service Pack 1 (x86)

:arrow: Descargar CMake

* Link: cmake[dot]org/cmake/resources/software.html
* Archivo: cmake-2.8.7-win32-x86.exe

:arrow: Instalar CMake

* Durante la instalación elegir la opción: "Add CMake to the system PATH for all users"

:arrow: Descargar OpenCV

* Link: sourceforge[dot]net/projects/opencvlibrary/files/opencv-win/2.3/OpenCV-2.3.0-win-src.zip
* Archivo: OpenCV-2.3.0-win-src.zip
* Tamaño: 54.2 MB

:arrow: Descomprimir el archivo "OpenCV-2.3.0-win-src.zip"

:arrow: Copiar la carpeta "OpenCV-2.3.0-win-src" para el directorio raiz "c:\"

:arrow: Renombrar la carpeta "c:\OpenCV-2.3.0-win-src" para "c:\OpenCV-2.3"

:arrow: Todos los archivos deben estar en la carpeta "c:\OpenCV-2.3", para eso debemos copiar los archivos, si es necesario

:arrow: Crear la carpeta "build" dentro de "c:\OpenCV-2.3", entonces se tendrá "c:\OpenCV-2.3\build"

:arrow: Ejecutar CMake

* En "Where is the source code:", rellenar con "c:/OpenCV-2.3"
* En "Where to build the binaries:", rellenar con "c:/OpenCV-2.3/build"
* Hacer clic en "Configure"
* En "Specify the generator for this project", elegir la opción: "Visual Studio 10", y activar la opción "Use default native compilers"
* Esperar que termine el proceso de configuración
* Activar las casillas "BUILD_EXAMPLES" y "INSTALL_C_EXAMPLES" que aparecen en color rojo, y luego hacer clic en "Configure" y esperar hasta que se active el botón "Generate". Hacer clic en "Generate"
* Cerrar CMake

:arrow: Ejecutar Microsoft Visual C++ 2010 Express

:arrow: Abrir el archivo de la solución "OpenCV.sln", localizado el directorio "c:\OpenCV-2.3\build". Esperar hasta que todos los archivos sean completamente cargados. Presionar "F7" para construir la solución. Esperar hasta que se complete el proceso. Al final del proceso se debería mostrar el mensaje:
========== Build: 122 succeeded, 0 failed, 0 up-to-date, 3 skipped ==========

:arrow: Cerramos Microsoft Visual C++ 2010 Express

:arrow: Agregar en las variable de entorno del sistema "PATH", las siguientes dos carpetas: "c:\OpenCV-2.3\build\bin\Debug" y "c:\OpenCV-2.3\build\lib\Debug"

:arrow: OpenCV esta ahora construido y instalado correctamente según el sistema operativo :).

:arrow: Se debe reiniciar la PC, para que se actualicen las modificaciones y antes de intentar ejecutar un programa con OpenCV

:arrow: Descargar MinGW

* Link: sourceforge[dot]net/projects/mingw/files/Installer/mingw-get/mingw-get-0.3-alpha-2.1/
* Archivo: mingw-get-0.3-mingw32-alpha-2.1-bin.zip

:arrow: Instalar MinGW [ref: mingw[dot]org/wiki/Getting_Started]

* Extraer los archivos en "c:\MinGW"
* Agregar "c:\MinGW\bin" en la variable de ambiente del sistema PATH
* Abrir una terminal DOS
* En el prompt del terminal ingresamos para "c:\MinGW\bin"
* Escribir el comando "mingw-get install gcc g++ fortran ada java objc mingw32-make gdb msys-base fortran"
* Verificar que cada proceso se ejecute correctamente
* Esperar que termine el proceso de instalación
* Cerrar terminal

:arrow: Descargar MSYS, MSYS DTK y MSYS Core

* Link: downloads[dot]sourceforge[dot]net/mingw/MSYS-1.0.11.exe
* Archivo: MSYS-1.0.11.exe

* Link: downloads[dot]sourceforge[dot]net/mingw/msysDTK-1.0.1.exe
* Archivo: msysDTK-1.0.1.exe

* Link: sourceforge[dot]net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.17-1/
* Archivo: msysCORE-1.0.17-1-msys-1.0.17-bin.tar

:arrow: Instalar MSYS

* Instalar MSYS dentro de la carpeta "c:\msys\1.0"
* Luego, en el proceso de pos instalación le pedirá el directorio donde fue instalado MinGW. Escribir "c:/mingw"

:arrow: Instalar MSYS DTK en el directorio "c:\msys\1.0"

:arrow: Instalar MSYS Core. Es un archivo comprimido. Descomprimir en "c:\msys\1.0"

:arrow: Agregar "c:\msys\1.0\home" a la variable de entorno del sistema “HOME”

:arrow: Se debe tener una "M" de color cían sobre el Escritorio de Windows 7. Cuando se haga doble clic en el, una terminal debería ser lanzado

:arrow: Instalación de gtk-runtime y pkg-config

Pkg-config es un software que provee una interfaz unificada para llamar bibliotecas instaladas cuando se está compilando un programa a partir del código fuente. Da información diversa sobre las bibliotecas instaladas. Esta información incluye:
* Parámetros para el compilador de C o de C++.
* Parámetros para el enlazador.
* Versión del paquete en cuestión.

Descargar gtk-runtime
* Link: sourceforge[dot]net/projects/gtk-win/
* Archivo: gtk2-runtime-2.24.8-2011-12-03-ash.exe

Descargar pkg-config
* Link: www[dot]gtk[dot]org/download/win32.php (opcion "Tool")
*Archivo: pkg-config_0.26-1_win32.zip

Instalar gtk-runtime dejando las opciones predeterminadas

Instalar pkg-config. Extraer el contenido del archivo .zip y obtener dos carpetas: bin y manifest. Dentro de la carpeta “bin” se encuentra "pkg-config.exe". Copiar "pkg-config.exe" a la carpeta "bin" de MinGW (C:\MinGW\bin por default). Crear la carpeta "pkg-config" en MinGW (C:\MinGW\pkg-config). Y finalmente crear un archivo llamado "opencv.pc" con el siguiente texto:

Código: Seleccionar todo

# Package Information for pkg-config

prefix=C:/OpenCV-2.3

exec_prefix=${prefix}

libdir=${exec_prefix}/build/lib/Debug

includedir_old=${prefix}/include/opencv

includedir_new=${prefix}/include

Name: OpenCV

Description: Open Source Computer Vision Library

Version: 2.3.0

Libs: -L${libdir} -opencv_calib3d230d -opencv_contrib230d -opencv_core230d -opencv_features2d230d -opencv_flann230d -opencv_gpu230d -opencv_haartraining_engined -opencv_highgui230d -opencv_imgproc230d -opencv_legacy230d -opencv_ml230d -opencv_objdetect230d -opencv_ts230d -opencv_video230d

Cflags: -I${includedir_old} -I${includedir_new}

Copiar "opencv.pc" para "C:\MinGW\pkg-config". Agregar una variable de entorno llamada "PKG_CONFIG_PATH" al sistema con el valor de "C:\MinGW\pkg-config".

:arrow: Descargar el JDK de Java

* Link: oracle[dot]com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html
* Archivo: jdk-7u3-windows-i586.exe

:arrow: Instalar el JDK

:arrow: Descargar Netbeans para C/C++

* Link: netbeans[dot]org/downloads/
* Archivo: netbeans-7.1.1-ml-cpp-windows.exe

:arrow: Instalar Netbeans

:arrow: Abrir Netbeans, y crear un nuevo proyecto. Vamos a "File>>New Project...>>C/C++>>C/C++ Application", y luego hacemos clic en el botón "Next". En la siguiente ventana asignamos el nombre del proyecto y localización

:arrow: Necesitamos hacer unas configuraciones adicionales. Hacemos clic derecho sobre el nombre del proyecto, y hacemos clic en "Properties". Dentro de la ventana de propiedades, vamos a la opción "Build>>C++ Compiler", y una vez dentro vamos a la opción "General>>Include Directories", y adicionamos todas las carpetas que contienes los archivos de cabecera, por ejemplo en mi caso, yo adicione las siguientes carpetas:

* ../../../../../OpenCV-2.3/include
* ../../../../../OpenCV-2.3/include/opencv
* ../../../../../OpenCV-2.3/include/opencv2
* ../../../../../OpenCV-2.3/modules/androidcamera/include
* ../../../../../OpenCV-2.3/modules/calib3d/include
* ../../../../../OpenCV-2.3/modules/contrib/include
* ../../../../../OpenCV-2.3/modules/core/include
* ../../../../../OpenCV-2.3/modules/features2d/include
* ../../../../../OpenCV-2.3/modules/flann/include
* ../../../../../OpenCV-2.3/modules/gpu/include
* ../../../../../OpenCV-2.3/modules/haartraining
* ../../../../../OpenCV-2.3/modules/highgui/include
* ../../../../../OpenCV-2.3/modules/imgproc/include
* ../../../../../OpenCV-2.3/modules/legacy/include
* ../../../../../OpenCV-2.3/modules/ml/include
* ../../../../../OpenCV-2.3/modules/objdetect/include
* ../../../../../OpenCV-2.3/modules/python
* ../../../../../OpenCV-2.3/modules/stitching
* ../../../../../OpenCV-2.3/modules/traincascade
* ../../../../../OpenCV-2.3/modules/ts/include
* ../../../../../OpenCV-2.3/modules/video/include

Y también luego vamos a la opción de "C++ Compiler>>Compilation Line", y agregamos en la opción "Additional Options" con el valor de "`pkg-config opencv --cflags`".

Luego se debe tener activado por defecto la opción "Use Linker Libraries" y "Tool" debe ser "g++.exe". Luego vamos a la opción "Build>>Linker", y una vez dentro vamos a la opción "General>>Additional Library Directories" en donde agregamos la siguiente carpeta:

* ../../../../../OpenCV-2.3/build/lib/Debug

Y también la opción "Tool" debe ser "g++.exe", y finalmente en "Libraries" utilizando el botón "Add Library..." agregamos los archivos que se encuentran dentro de la carpeta "c:\OpenCV-2.3\build\lib":

* opencv_calib3d230d.lib
* opencv_contrib230d.lib
* opencv_core230d.lib
* opencv_features2d230d.lib
* opencv_features2d230d.lib
* opencv_flann230d.lib
* opencv_gpu230d.lib
* opencv_haartraining_engined.lib
* opencv_highgui230d.lib
* opencv_imgproc230d.lib
* opencv_legacy230d.lib
* opencv_ml230d.lib
* opencv_objdetect230d.lib
* opencv_ts230d.lib
* opencv_video230d.lib

Y apretamos en el botón "OK" para cerrar la ventana :).

Luego vamos a la opción "Compilation Line", y agregamos en la opción "Additional Options" con el valor de "`pkg-config opencv --libs`". Finalmente hacemos clic en el botón "Apply" y luego en el botón "OK", para cerrar la ventana. Y Finalmente vamos al menú principal y elegimos la opción "Tools>>Options". Una vez dentro hacemos clic en la pestaña "C/C++>>Build Tools>>MinGW". Una vez dentro verificamos que los valores asignados sean los correctos, como por ejemplo, en mi caso en particular:

* Family: MinGW
* Base Directory: c:\MinGW\bin
* C Compiler: c:\MinGW\bin\gcc.exe
* C++ Complier: c:\MinGW\bin\g++.exe
* Fortran Compiler: c:\MinGW\bin\gfortran.exe
* Assembler: c:\MinGW\bin\as.exe
* Make Command: c:\msys\1.0\bin\make.exe
* Debugger Command: c:\MinGW\bin\gdb.exe
* CMake Command: c:\Program Files\CMake 2.8\bin\cmake.exe

Luego hacemos clic en "OK". Ya tenemos listo el netbeans para ejecutar aplicaciones con OpenCV :).

Ahora, vamos a ejecutar una pequeña aplicación con OpenCV. Para ello vamos dentro de "Projects>>CppAplication_1>>Source Files>>main.cpp", y agregamos el siguiente código:

Código: Seleccionar todo

#include <cstdlib>
#include <iostream>
#include <stdio.h>

#include <cv.h>
#include <highgui.h>

using namespace std;

int main(int argc, char** argv) 
{
    printf("hola mundo\n");

    IplImage* img = cvLoadImage("D:\\codigo\\img1.png"); 
    cvNamedWindow("myfirstwindow");
    cvShowImage("myfirstwindow", img);
    cvWaitKey(0);
    cvReleaseImage(&img);

    return 0;
}
Eso es todo :). Criticas y comentarios enviar a mi e-mail.

Responder