Difference between revisions of "Isidoro-TFM-Rovio02"
m |
|||
Line 1: | Line 1: | ||
[[Imagen:rovio_robot.jpg|thumb|right|200px|Rovio, la cámara web móvil.]] | [[Imagen:rovio_robot.jpg|thumb|right|200px|Rovio, la cámara web móvil.]] | ||
− | El trabajo que aquí se va a presentar trata sobre la aplicación del robot ROVIO de la | + | El trabajo que aquí se va a presentar trata sobre la aplicación del robot ROVIO de la empresa [http://www.wowwee.com/en/support/rovio Wowwee Technologies] a tareas de vigilancia. Para ello se utilizará la biblioteca de visión artificial [http://es.wikipedia.org/wiki/OpenCV ''OpenCV''], que será la encargada de procesar la información proviniente de la cámara wifi de ROVIO en un ordenador portátil. Como sistema operativo de base para el desarrollo de esta aplicación se utilizará [http://es.wikipedia.org/wiki/GNU/Linux GNU/Linux], en concreto la distribución [http://www.ubuntu.com/ Ubuntu]. La aplicación será desarrollada enteramente en [http://es.wikipedia.org/wiki/C_%28lenguaje_de_programaci%C3%B3n%29 lenguaje C]. |
== Introducción == | == Introducción == | ||
Line 13: | Line 13: | ||
=== Instalación de la biblioteca === | === Instalación de la biblioteca === | ||
− | Para realizar la instalación de cualquier paquete lo más cómodo suele ser utilizar una interfaz gráfica. Los usuarios de Ubuntu pueden usar Synaptic (''Sistema/Administración/Gestor de paquetes Synaptic'') que es la interfaz gráfica por defecto en estos momentos, aunque también se puede instalar desde la línea de comandos: | + | Para realizar la instalación de cualquier paquete lo más cómodo suele ser utilizar una interfaz gráfica. Los usuarios de Ubuntu pueden usar Synaptic (''Sistema/Administración/Gestor de paquetes Synaptic'') que es la interfaz gráfica por defecto en estos momentos, aunque también se puede instalar desde la línea de comandos de un terminal: |
<geshi lang=Bash lines=0>~$ sudo aptitude install libcv4 libhighgui4 libcvaux4 libcv-dev libhighgui-dev libcvaux-dev opencv-doc</geshi> | <geshi lang=Bash lines=0>~$ sudo aptitude install libcv4 libhighgui4 libcvaux4 libcv-dev libhighgui-dev libcvaux-dev opencv-doc</geshi> | ||
− | Los tres primeros paquetes corresponden a la biblioteca propiamente dicha, por tanto son imprescindibles. Los tres siguientes con el sufijo ''-dev'' son los ficheros de desarrollo que también los necesitaremos si queremos desarrollar aplicaciones con esta biblioteca. El último paquete contiene programas de ejemplo y documentación sobre OpenCV y aunque no es imprescidible para trabajar, sí que es recomendable como fuente de consulta. | + | Los tres primeros paquetes corresponden a la biblioteca propiamente dicha, por tanto son imprescindibles. Los tres siguientes con el sufijo ''-dev'' son los ficheros de desarrollo que también los necesitaremos si queremos desarrollar aplicaciones con esta biblioteca. El último paquete contiene programas de ejemplo y documentación sobre OpenCV y aunque no es imprescidible para trabajar, sí que es recomendable como fuente de consulta. Si se quiere contar con la última versión de las bibliotecas se puede realizar una instalación manual de las mismas siguiendo el proceso descrito para tal fin en [http://opencv.willowgarage.com/wiki/InstallGuide WillowGarage] |
=== Operaciones básicas === | === Operaciones básicas === | ||
Line 42: | Line 42: | ||
/* inicializa fuente y aplica texto */ | /* inicializa fuente y aplica texto */ | ||
− | CvFont | + | CvFont fuente; |
− | cvInitFont(& | + | cvInitFont(&fuente, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 1, CV_AA); |
− | cvPutText(img, "Hola Mundo!", cvPoint(10, 130), & | + | cvPutText(img, "Hola Mundo!", cvPoint(10, 130), &fuente, cvScalar(0, 0, 0, 0)); |
/* muestra la imagen */ | /* muestra la imagen */ | ||
cvNamedWindow("imagen", CV_WINDOW_AUTOSIZE); | cvNamedWindow("imagen", CV_WINDOW_AUTOSIZE); | ||
Line 54: | Line 54: | ||
}</geshi> | }</geshi> | ||
− | Si guardamos este código con el nombre '' | + | Si guardamos este código con el nombre ''cv_texto.c'' y lo compilamos con g++ de la forma: |
− | <geshi lang=Bash lines=0>~$ g++ -o | + | <geshi lang=Bash lines=0>~$ g++ -o cv_texto cv_texto.c -Wall -I /usr/include/opencv -L /usr/lib -lm -lhighgui</geshi> |
− | deberíamos poder obtener un fichero que | + | deberíamos poder obtener un fichero que ejecutaríamos mediante la orden |
− | <geshi lang=Bash lines=0>~$./ | + | <geshi lang=Bash lines=0>~$./cv_texto mi-imagen.jpg</geshi> |
+ | siendo ''mi-imagen.jpg'' el nombre del fichero con la imagen que queremos mostrar. OpenCV también soporta formatos de imagen del tipo BMP, PNG, PGM y TIFF entre otros. | ||
=== Seguimiento de colores === | === Seguimiento de colores === | ||
Line 72: | Line 73: | ||
=== Anexo B: Comandos de control de ROVIO(?) === | === Anexo B: Comandos de control de ROVIO(?) === | ||
+ | |||
+ | Pendiente de redacción | ||
+ | |||
+ | === Anexo C: Hardware de ROVIO(?) === | ||
Pendiente de redacción | Pendiente de redacción |
Revision as of 13:52, 6 March 2011
thumb|right|200px|Rovio, la cámara web móvil.
El trabajo que aquí se va a presentar trata sobre la aplicación del robot ROVIO de la empresa Wowwee Technologies a tareas de vigilancia. Para ello se utilizará la biblioteca de visión artificial OpenCV, que será la encargada de procesar la información proviniente de la cámara wifi de ROVIO en un ordenador portátil. Como sistema operativo de base para el desarrollo de esta aplicación se utilizará GNU/Linux, en concreto la distribución Ubuntu. La aplicación será desarrollada enteramente en lenguaje C.
Contents
Introducción
Pendiente de redacción...
OpenCV
Pendiente de redaccción...
Instalación de la biblioteca
Para realizar la instalación de cualquier paquete lo más cómodo suele ser utilizar una interfaz gráfica. Los usuarios de Ubuntu pueden usar Synaptic (Sistema/Administración/Gestor de paquetes Synaptic) que es la interfaz gráfica por defecto en estos momentos, aunque también se puede instalar desde la línea de comandos de un terminal:
<geshi lang=Bash lines=0>~$ sudo aptitude install libcv4 libhighgui4 libcvaux4 libcv-dev libhighgui-dev libcvaux-dev opencv-doc</geshi>
Los tres primeros paquetes corresponden a la biblioteca propiamente dicha, por tanto son imprescindibles. Los tres siguientes con el sufijo -dev son los ficheros de desarrollo que también los necesitaremos si queremos desarrollar aplicaciones con esta biblioteca. El último paquete contiene programas de ejemplo y documentación sobre OpenCV y aunque no es imprescidible para trabajar, sí que es recomendable como fuente de consulta. Si se quiere contar con la última versión de las bibliotecas se puede realizar una instalación manual de las mismas siguiendo el proceso descrito para tal fin en WillowGarage
Operaciones básicas
Pendiente de redacción
Prueba de colores en código
<geshi lang=C lines=0>#include <stdio.h>
- include "cv.h"
- include "highgui.h"
int main(int argc, char* argv[]) { if(argc<2){
printf("Uso: cv_texto <nombre-de-imagen>\n\7"); exit(0); }
IplImage *img = cvLoadImage(argv[1]);
if(!img){ printf("No puedo cargar la imagen: %s\n",argv[1]); exit(0); }
/* inicializa fuente y aplica texto */ CvFont fuente; cvInitFont(&fuente, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 1, CV_AA); cvPutText(img, "Hola Mundo!", cvPoint(10, 130), &fuente, cvScalar(0, 0, 0, 0)); /* muestra la imagen */ cvNamedWindow("imagen", CV_WINDOW_AUTOSIZE); cvShowImage("imagen", img); cvWaitKey(0); cvDestroyWindow("imagen"); cvReleaseImage( &img ); return 0; }</geshi>
Si guardamos este código con el nombre cv_texto.c y lo compilamos con g++ de la forma:
<geshi lang=Bash lines=0>~$ g++ -o cv_texto cv_texto.c -Wall -I /usr/include/opencv -L /usr/lib -lm -lhighgui</geshi>
deberíamos poder obtener un fichero que ejecutaríamos mediante la orden
<geshi lang=Bash lines=0>~$./cv_texto mi-imagen.jpg</geshi>
siendo mi-imagen.jpg el nombre del fichero con la imagen que queremos mostrar. OpenCV también soporta formatos de imagen del tipo BMP, PNG, PGM y TIFF entre otros.
Seguimiento de colores
Pendiente de redacción
Anexos
Anexo A: Configuración de ROVIO
Pendiente de redacción
Anexo B: Comandos de control de ROVIO(?)
Pendiente de redacción
Anexo C: Hardware de ROVIO(?)
Pendiente de redacción