Jugando con Opencv

    Posted by mibanez | Posted in Computación Gráfica, Memoria de Titulo, opencv | Posted on 18-07-2009

    2

    Intel OpenCV - Library

    Para la gente que aún no lo conoce, opencv es una biblioteca de funciones de c/c++ para visión por computador bajo el desarrollo constante de intel (bajo licencia FREE BSD) para  , cuenta con muchísima documentación en la red y en la actualidad posee más de 500 algoritmos listos para ser utilizados. sus principales características son:

    • Manejo de estructuras básicas
    • Procesamiento de imágenes
    • Análisis estructural
    • Análisis de movimiento y seguimiento de objetos
    • Reconocimiento de objetos
    • Calibración de cámara y reconstrucción de escenas 3D
    • Manejo de escenas de vídeo
    • Construcción de interfaces gráficas de usuario (GUI)

    Bueno luego de esta pequeña introducción vamos a la instalación de la biblioteca, si bien posee soporte para windows – mac – linux, en este pequeño articulo veremos como instalarla en Linux específicamente en Ubuntu  (9.04 – 8.10).

    Lo primero que tenemos que hacer es asegurarnos de poseer el compilador C/C++ y los esenciales de ubuntu, para ello ingresamos a una terminal y escribimos:

    sudo apt-get install build-essential

    al cabo de unos minutos o segundos (depende de tu velocidad de conexión) la operación terminara con éxito.

    Ahora es momento de instalar las lib, pero también las lib­dev (por ejemplo, libpng12­dev), para ello, nos vamos al terminal y tipiamos :

    sudo apt-get install libpng12-dev

    Para el siguiente paso de este mini tutorial es la instalación de la biblioteca esto lo podemos realizar de dos formas:

    • Vía apt-get con:
      sudo apt-get install libcv-dev libcv1  libcvaux-dev libcvaux1 libhighgui-dev libhighgui1
    • Compilando el código que se encuentra en este link , luego de completar hacemos lo siguiente:
      mv opencv-1.1pre1.tar.gz /usr/src/
      cd /usr/src/

      tar -xvzf opencv-1.1pre1.tar.gz
      ./configure
      make
      make install
      preparamos nuestro café favorito y luego de un rato si todo marcho bien la instalación esta completa.

    Admito que para realizar mi instalación realice el paso uno (vía apt) y todo funciona de pelos, luego de esto ya tenemos la biblioteca en nuestro computador…. ¿y ahora que?.

    El Sigueinte paso es jugar con un pequeño ejemplo que no hace más que comprobar el correcto funcionamiento de la biblioteca, para ello abrimos nuestro ide favorito (en mi caso Geany) y ponernos a programas unos segundos:

    #include "cv.h"
    #include "highgui.h"
    #include
    char lena[]="lena.jpg"; // se define el fichero a cargar
    int main()
    {
    IplImage* imagen=NULL;//inicializo imagen
    imagen=cvLoadImage(lena,1);// cargamos la imagen en tres colores
    cvNamedWindow( "Juego", 1); // creamos la ventana de nombre Juego
    cvShowImage( "Juego", imagen ); // representamos la imagen en la ventana
    cvSaveImage("guardando.jpg",imagen); // guardamos la imagen
    cvWaitKey(0); // se pulsa tecla para terminar
    cvDestroyAllWindows(); // destruimos todas las ventanas
    cvReleaseImage(&imagen);
    return 0;
    }

    Este trozo de código no hace mas que mostrar una imagen y luego guardarla con el nombre guardando.jpg la manera de compilar este ejemplo es en un terminal escribimos:

    gcc juego.cpp -o juego -lcv -lhighgui -I/usr/include/opencv/ -L/usr/local/lib

    para ejecutarlo en la misma consola ponemos

    ./juego

    y eso seria todo. Espero que el mini tutorial sea de ayuda para quienes se estan iniciando en opencv y quedo atento a sus comentarios.

    Saludos estimados

    PD: les dejo la foto de lena en el link

    Comments (2)

    Estimado Mario Ibañez:

    Contacto con usted debido a que he buscado en la red un experto en el programa de analisis visual OpenCV y he encontrado que ha realizado numerosos trabajos de docencia y aplicaciones de la materia. He intantado desarrollar una aplicación pero para ello se necesita un experto, le expongo aqui el problema:

    Se trata del analisis de una imagen de video,en la que aparece una pelota o bola que cada vez que pasa por un punto concreto fijo se tomaria una medida de tiempo, la pelota es de color claro y contrasta con el fondo, por lo que seria facilmente reconocible. Tambien se haria el mismo proceso con otro elemento en movimiento que tiene un color que contrasta mucho con el fondo, por lo que tambien se podria reconocer. Se tendrian que tomar medidas de tiempo de los dos elementos con una fiabilidad aproximada de centesimas de segundo en la secuencia de video. Tambien me gustaria saber si hay alguna aplicacion directa de open cv en la que no se necesite conocimientos de programacion.

    Me gustaria saber su opinion sobre la viabilidad de la aplicacion, si es posible desarrollarla, asi como contactar por otra via si es necesario.
    Un cordial saludo

    Fernando Martinez

    Muy buenas; en respuesta a lo que pregunta Fernando, responderle que es relativamente sencillo en realizar esa aplicacion.

    Si tiene alguna cuestión, puede preguntarme en susogv en gmail.
    Gracias

    Write a comment