martes, 16 de diciembre de 2008

Background Subtraction

"Background Subtraction" (o Substracción de Fondo) es una técnica que consiste en que a todos los frames de un video se le va restando el primero (u otro que elijamos), de tal forma que en el vídeo resultado, lo que se vea sea un fondo negro, y en blanco lo que ha cambiado.

Aquí muestro un vídeo de ejemplo:


En la imagen superior izquierda, tengo el vídeo original, en la superior derecha está el original en escala de grises. En la parte inferior izquierda está la resta del video en escala de grises y el fotograma seleccionado y en la parte inferior derecha está la resta en binario.

martes, 25 de noviembre de 2008

XML y C++

Hola.

Esta semana he estado investigando como integrar XML en C++. He sacado de la biblioteca el libro "XML C++, guía avanzada" de Fabio Arciniegas y he visto que hay más de una forma.

Por otro lado, ya me he bajado los videos del youtube, los he pasado a .avi y ya consigo mostrar el primero de ellos (que es con el que voy a trabajar) a tiempo real, lo que todavía no he empezado a investigar es como definir la zona de entrada al parking y la de salida, así que voy a intentar ver la manera en la que puedo hacerlo. (Ya se que con XML lo tengo que definir todo, pero de momento para ir probando pensaba hacérselo a pelo xD).

Además también he estado diseñando en papel los elementos a tener en cuenta en el caso de estadística de Parking, aunque de momento es sólo una idea.

Un Saludo y hasta la próxima.

miércoles, 19 de noviembre de 2008

Resumen

Hola amigos.
Como llevo un par de semanas sin escribir, pues voy a hacer un resumen de los avances en este tiempo sobre mi proyecto.
En primer lugar, Antonio me recomendó utilizar XML para parametrizar las posibles variables del entorno y la cámara, por eso llevo un par de semanas estudiando XML como un loco. xD.
Por otro lado, también he empezado a trabajar con una secuencia de video estática, que despues de buscar por el youtube, lo único que he encontrado que se parezca a un parking en movimiento son los siguientes videos, los cuales son con coches de juguete, pero puede ser interesante para comenzar a trabajar.





Se suponía que para esta semana debía encontrar el modo de definirle al programa los accesos al parking y que detectase los vehículos que acceden, pero gracias a la incompetencia de algunos profesores de una asignatura que no saben explicar (no voy a dar nombres, pero no es ninguna asignatura del GAVAB xD), me han hecho dedicarle demasiado tiempo a unas prácticas que desde mi punto de vista no se parecen en nada a lo que se explica en clase y encima si vas al despacho a preguntar dudas te vienen con temas filosóficos de que si estudiamos poco y esas cosas.
Ya se que esto último no viene al caso, pero necesitaba desahogarme. xD

Un Saludo

lunes, 3 de noviembre de 2008

Primer programa con OpenCV

Hola.
Pues en este fin de semana he desarrollado mi primer programa con OpenCV. He desarrollado un programa que muestra la imagen que capta por la webcam integrada de mi PC.
Para implementarlo, he utilizado "Eclipse" y lo he configurado como se dice en los blogs de los compañeros y no he tenido ningún problema.
También me he ayudado del primer ejemplo y las expliaciones de esta web, que es una introducción a OpenCV (como comenté en mi anterior mensaje). Para saber cómo tenía que hacer el programa, copié el código fuente de hellow-world.cpp, y le fui cambiando cosas, hasta conseguir un visor de webcam.
Por último comentar que una vez que conseguí ver mi careto por la webcam, no usaba la instrucción apropiada, y mostraba una foto. Luego probe a meterlo en un bucle, y me mostraba varias imágenes. Por último, mirando las funciones de la librería highgui.h, descubrí la función cvReleaseCapture(&capture) con la cual veía la imagen en tiempo real.
El último problema que tuve con el programa es que no sabía cómo hacer para que al pulsar la tecla "escape", saliese del bucle y no solamente tomase imágenes durante unos segundos. Para darle solución a este problema, abrí el código fuente de uno de los ejemplos que se instalan con el paquete de OpenCV y vi que la tecla "escape" era con (key==27).
Un Saludo y hasta la próxima.

miércoles, 29 de octubre de 2008

OpenCV

Hola.
Pues como me mandaron la semana pasada, he estado investigando sobre OpenCV y ya se lo que es y para que sirve.
Según la wikipedia OpenCV es una librería libre de visión artificial originalmente desarrollada por Intel y publicada bajo licencia BSD, que permite que sea usada libremente para propósitos comerciales y de investigación con las condiciones en ellas expresadas.
En definitiva se puede decir que OpenCV es una librería para trabajar con imágenes y cámaras programando en C.

Después de saber ya lo que era OpenCV me puse manos a la obra y empecé a investigar donde se descarga y como se utiliza. Lo de descargar la librería es algo sencillo y se puede hacer desde aquí. La última versión disponible es de tan sólo hace unos días, pero de momento me he instalado la penúltima.

Por otro lado, también investigué los blogs de los compañeros para ver que plataformas utilizaban y llegué a la conclusión de que me iba a quedar con Eclipse Gavab, porque ya que este año me he decidido a utilizarlo para EDI, pues también me puede venir bien para el proyecto.

Por último tuve curiosidad sobre como hacer un programa asi que seguí buscando cositas por internet y encontré esta web, que es una introducción a la programación con OpenCV así que voy a ponerme con ello a ver que saco en claro.

jueves, 23 de octubre de 2008

Presentación

Hola a todos.

Soy un alumno de Ingeniería Técnica en Informática de Sistemas, de la Universidad Rey Juan Carlos.

Este blog me va a servir para mostraros el desarrollo de mi Proyecto de Fin de Carrera. Este proyecto se titula "Cámara Estadística" y está dirigido por los profesores Antonio Sanz y Juan José Pantrigo, pertenecientes al grupo GAVAB de la Universidad.

Resumen del Proyecto: La ciudad es un entorno complejo, dinámico y lleno de datos. Las cámaras inteligentes reciben y procesan imágenes para ofrecer información de más alto nivel. En este proyecto se creará una aplicación inteligente que almacene las estadísticas que un experto decida a través de una serie de reglas en un escenario preparado.

La primera tarea que tengo que hacer es investigar acerca de OpenCV, que es una librería de C que incluye funciones para trabajar con cámaras.

Un Saludo y hasta la próxima.