Empezando Con Opencv

Siempre me ha parecido increíble la visión por computador. Desde mi punto de vista (nunca mejor dicho) creo que tiene muchas aplicaciones y además es un campo que permite observar las mejoras en la computación. Este verano estuve en Renault y pude ver como los “robot” colocaban el cristal delantero en un tiempo menor a 14 segundos (tiempo en el cual se seca el pegamento). Esta es una de las miles de aplicaciones que tiene la visión por computador. ¿Sabías que se puede contabilizar el número de granos de arroz y determinar el tipo en un difusor mediante una cámara?

Por esta razón me he dispuesto a empezar a dar mis primeros pasos con la visión con computador. Además, en mi laboratorio de investigación estoy tratando con FPGA y la idea es implementar algoritmos hardware para el tratamiento de las imágenes, por lo que todo lo que aprenda me será muy útil en el futuro.

En primer lugar vamos a intentar instalar Opencv que la verdad… A veces es bastante lioso… Al final he optado por compilar yo mismo la librería dado que me parece más comodo que bajarme el paquete del gestor (muchas veces no sabemos que instalamos y en estos casos es muy conveniente tener el control sobre todas las opciones de compilación).

Instalación

Vamos a descargarnos en primer lugar el código fuente (¡TODO EL PROCESO SE EXPLICARÁ PARA UNIX!)

1
2
$cd /opt
$git clone https://github.com/Itseez/opencv.git

Logicamente necesitarás git por lo que si no lo tienes descargarlo desdea tu gestor de paquetes favorito.

Una vez descargado el código fuente accede a la carpeta de opencv que se habrá creado al descargar el repositorio y una vez allí, crrea una carpeta que nos servirá como directorio de trabajo (Esto es muy común cuando se trabaja con cmake). Una vez creado el directorio, accede a él y ejecuta el comando cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local, este comando puede modificarse con las opciones DEFINE (-D) pero… De momento haremos lo básico.

1
2
3
4
$cd opencv
$mkdir build
$cd build
$cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

Lo último que tenemos que hacer es compilar e instalar las librerías (cmake únicamente genera un Makefile con todos los parámetros configurados para nuestro ordenador, de modo que si cambiamos a Windows (Dios no lo quiera) y queremos compilar todo, teniendo en cuenta que las rutas son diferentes etc, únicamente tendremos que volver a ejecutar cmake y luego compilar e instalar con el make que nos brinda la herramienta).

Para compilar tenemos que hacer lo típico en UNIX, es decir, make y make install.

1
2
3
$make -j(número de nucleos más 1)
$su -c 'make install'
$su -c 'ldcondfig'

En principio con esto ya deberíamos tener las librerías en nuestro ordenador. Para utilizar python tenemos que realizar un cambio más, esto ocurre porque las librerías de python se deben poner en /usr/lib/python3.4/site-packages, sin ebargo, nosotros hemos instalado todo en /usr/local/lib. Para arreglar esto copia los archivos de /usr/local/lib/python3.4/site-packages a /usr/lib/python3.4/site-packages

Probando la librería

Ahora que ya tenemos instalada la librería vamos a realizar un ejemplo muy simple para ver todo esto en funcionamiento.

En este capítulo solo os voy a enseñar a compilar el programa, en próximos capitulos entraremos en profundidad.

[opencv1.cpp]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#include <opencv2/opencv.hpp>

using namespace cv;

int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
            printf("usage: DisplayImage.out <Image_Path>\n");
            return -1;
        }

    Mat image;
    image = imread( argv[1], 1 );

    if ( !image.data )
    {
            printf("No image data \n");
            return -1;
        }
    namedWindow("Display Image", CV_WINDOW_AUTOSIZE );
    imshow("Display Image", image);

    waitKey(0);

    return 0;
}

También necesitamos un archivo CMakeLists.txt que dirá a CMake que debe hacer. Este archivo deberá estar en la carpeta raíz.

1
2
3
4
5
cmake_minimum_required(VERSION 2.8)
project(PruebaInicial)
find_package(OpenCV REQUIRED)
add_executable(salida opencv1.cpp)
target_link_libraries(salida ${OpenCV_LIBS})

Ahora solo nos queda crear los archivos de CMake y el Makefile mediante el comando:

1
$cmake .

Ahora se habrá generado un makefile con el cual podremos compilar nuestro programa.

Para probar el programa solo tienes que dar un parámetro de entrada que sea una imagen.

1
./salida foto.jpg

Comentarios

Copyright © 2015 José Antonio de la Torre las Heras .