Difference between revisions of "Isidoro-TFM-Rovio02"
m |
|||
Line 15: | Line 15: | ||
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: | ||
− | + | <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. | ||
Line 22: | Line 22: | ||
Pendiente de redacción | 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 font; | ||
+ | cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 1, CV_AA); | ||
+ | cvPutText(img, "Hola Mundo!", cvPoint(10, 130), &font, 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 ''ejemplo.c'' y lo compilamos con g++ de la forma: | ||
+ | |||
+ | <geshi lang=Bash lines=0>~$ g++ -o ejemplo ejemplo.c -Wall -I /usr/include/opencv -L /usr/lib -lm -lhighgui</geshi> | ||
+ | |||
+ | deberíamos poder obtener un fichero que ejecutamos mediante la orden | ||
+ | |||
+ | <geshi lang=Bash lines=0>~$./ejemplo mi-imagen.jpg</geshi> | ||
=== Seguimiento de colores === | === Seguimiento de colores === |
Revision as of 20:35, 5 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 firma [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, ya que el procesador de ROVIO no tiene potencia suficiente para soportar la carga computacional que exige el uso de esta biblioteca. Como sistema operativo de base para el desarrollo de esta aplicación se utilizará GNU/Linux, en concreto la distribución [Ubuntu].
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:
<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.
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 font; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 1, CV_AA); cvPutText(img, "Hola Mundo!", cvPoint(10, 130), &font, 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 ejemplo.c y lo compilamos con g++ de la forma:
<geshi lang=Bash lines=0>~$ g++ -o ejemplo ejemplo.c -Wall -I /usr/include/opencv -L /usr/lib -lm -lhighgui</geshi>
deberíamos poder obtener un fichero que ejecutamos mediante la orden
<geshi lang=Bash lines=0>~$./ejemplo mi-imagen.jpg</geshi>
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