Instalando OpenCV

Instalando OpenCV: logoOpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado en infinidad de aplicaciones: desde sistemas de seguridad con detección de movimiento, hasta aplicaciones de control de procesos en los que se requiere reconocimiento de objetos. Esto se debe a que su publicación se da bajo licencia BSD, que permite que sea usada libremente para propósitos comerciales y de investigación con las condiciones en ella expresadas.

El objetivo de este artículo es el de iniciar una serie de artículos centrados en visión artificial, que nos permitirán ampliar el espectro de posibles aplicaciones para el NXT/Tetrix.

Open CV es multiplataforma, Existiendo versiones para Linux, Mac OS X y Windows. Contiene mas de 500 funciones que abarcan una gran gama de areas en el proceso de Visión, como reconocimiento de objetos (reconocimiento facial), calibración de camaras, vision estereo y visión robótica.

Instalando OpenCV: Requisitos

Para poder utilizar las librerías de OpenCV necesitamos un compilador de C/C++. Además necesitaréis el CMake, para poder construir programas de OpenCV. Puesto que tenemos Eclipse, y éste cuenta con un plugin para programar en C y C++ y además es gratuito, lo primero que vamos a hacer es instalar y probar dicho plugin.

Si quisiéramos realizar la instalación en Windows deberíamos realizar unos cuantos pasos adicionales. Anteriormente lo había intentado con Cygwin, pero en vista de los problemas surgidos con esta herramienta (de permisos en particular) y el excesivo espacio en disco que requería hemos preferido usar otro sistema más ligero.

Descargar e instalar el MinGW, una herramienta que nos permite compilar con gcc en Windows como si estuviéramos en un sistema basado en Linux (como Ubuntu). Es un requisito indispensable para el plugin de C/C++ para Eclipse. Os podéis descargar de la version de Twilight Dragon Media (TDM’s GCC/MinGW32 build) que contiene todo lo necesario. Os la podéis descargar de la página oficial de Twilight Dragon Media. Lo ejecutáis y lo instaláis.

Además también necesitaréis el MSYS, utilidad que emplearemos invocar el make necesario para compilar los programas. Lo podéis descargar de la página de MSYS. Al final de la instalación os preguntará si tenemos instalado el MinGW. Escribís y, pulsáis Enter, asó como él lugar de instalación del MinGW (os recuerdo que por defecto debería estar en C:MinGW, aunque debéis escribirlo con la barra invertida y sin mayúsculas (Ej.: c:/mingw)).

Una vez terminado este proceso podéis instalar el plugin de C/C++ para Eclipse. Para ello meteros en Help → Install New Software… En la ventana que se abrirá podeis escribir la dirección http://download.eclipse.org/tools/cdt/releases/galileo en donde pone Work with:. Al hacer esto os aparecerán abajo los plugins para instalar, seleccionad CDT Main Features y dadle a Next:

Instalando OpenCV: EclipseC++

Aceptad todo y esperad a que se instale. Una vez finalizado os recomendará que reiniciéis Eclipse (es recomendable hacerlo).

Programar C/C++ en Eclipse:

Lo primero que haremos es abrir la perspectiva de C/C++, para ello meteros en Window → Open Perspective → Other… y seleccionar C/C++:

Instalando OpenCV: EclipseC++2
Para crear un nuevo proyecto seleccionaremos New → C++ Project. En la ventana que se nos abre elegimos el nombre para el proyecto (HolaMundo por ejemplo), Hello World C++ Project, (en toolchains seleccionáis MinGW si estáis en Windows) y le dais a Finish, o a Next si queréis poner autor o copyright al programa:

Instalando OpenCV: EclipseC++3

Como veis ya viene escrito el programa Hello World:

//==================================
// Name : Hello.cpp
// Author : electricbricks.com
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C, Ansi-style
//==================================

#include

int main(void) {
puts(“Hola Mundo!!!”);
return EXIT_SUCCESS;
}

Hacemos un build dando al símbolo del martillo de la barra de herramientas, y para ejecutarlo vamos a Run → Run As → Local C/C++ Application. Por supuesto nos mostrará por consola Hola Mundo!!!. Para crear nuestro propio programa no tenemos más que modificar este código.

Instalación y prueba del OpenCV:

Ya podemos empezar a utilizar el OpenCV. Primero necesitamos descargar el OpenCV de la página oficial:

página oficial de OpenCV

Una vez descargado lo instalaremos, y al igual que con el CMake seleccionaremos Add CMake to the system PATH for all users en la ventana de Install Options, tal y como aparece en la siguiente imagen:

Instalando OpenCV: OpenCV

Una vez instalado ya podemos empezar a programar. Para ello abrid Eclipse y cread un proyecto nuevo tal y como os mostré en la sección de Programar C/C++ en Eclipse. Una vez creado clickeáis con el botón derecho en el proyecto y le dais a Properties → C/C++ Build → Settings → Tool Settings → GCC C++ Compiler → Directories y en Include Paths le dáis a Add.. y añadís la carpeta includeopencv de vuestra instalación del OpenCV (Ej.: C:OpenCV2.1includeopencv).

Posteriormente os movéis a Properties → C/C++ Build → Settings → Tool Settings → MinGW C++ Linker → Libraries, y en libraries añadís con la opción Add… highguiVER, cvVER y cxcoreVER, donde VER es el número de la versión del OpenCV (por ejemplo en mi caso que tengo el OpenCV 2.10, sería highgui210, cv210 y cxcore210 . Finalmente en la pestaña Library search path clickeáis en Add… y escribís la ruta de la carpeta lib en vuestra instalación de OpenCV (Ej.: C:OpenCV2.1lib). En esta imagen podéis ver como quedaría:

Instalando OpenCV: EclipseC++4

Vamos a crear un programa que simplemente nos muestra una imagen por pantalla. El código sería el siguiente:

#include "highgui.h"

int main(int argc, char** argv) {
IplImage* img = cvLoadImage(argv[1]);
cvNamedWindow(“Ventana_Imagen”, CV_WINDOW_AUTOSIZE);
cvShowImage(“Ventana_Imagen”, img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow(“Ventana_Imagen”);
}

04 – Esta línea carga la imagen cuya dirección hayamos escrito al iniciar el programa en memoria. Así podremos manejarla tranquilamente.

05 – Crea una ventana, donde podemos mostrar entre otras cosas imágenes. El segundo argumento son las propiedades de dicha ventana, en este caso se ajustará al tamaño de lo que tenga dentro.

06 – Mostramos la imagen en la ventana que hemos definido.

07 – Esperamos a que el usuario apriete una tecla.

08 – Liberamos la imagen de memoria.

09 – Cerramos la ventana creada anteriormente.

Esta claro que el programa mostrará en una ventana la imagen que le hayamos metido como primer argumento, esperará a que presionemos cualquier tecla, y finalmente se terminará. Recordad que en Eclipse para escribir los parámetros de entrada a un programa tenéis que ir a Run → Run Configurations → Arguments.

One thought on “Instalando OpenCV