jueves, 16 de mayo de 2013

Labo Vision. Intento detección Movimiento.

Que tal gente, para el laboratorio de esta semana se nos encargo realizar un programa que detectar movimiento. A continuación les presento mi intento.

Como funciona?

El flujo del programa es el siguiente:

Un loop que esta obteniendo constantes frames de la camara web.
Para cada frame:
  • Redimensiona para procesar mas rapido - OpenCV
  • Convierte a escala de grises - Con librería propia
  • Obtiene bordes - Con librería propia
  • Obtiene diferencias entre bordes del frame actual y el frame referencia (frame anterior) - propia
  • Pinta resultados y cámaras de salida 

El loop siempre trae en memoria el frame anterior sobre el cual se realiza la comparacion, para este laboratorio se hecho mano de OpenCV, pero solamente para cargar los frames a través de la cámara web, lo demás esta hecho a mano en base a ejercicios anteriores. Alli el porqué de la ineficiencia.

Código.

A continuación el código.

Pruebas.
A continuación se muestra un vídeo que demuestra el pseudo-funcionamiento, se puede observar en pantalla como el vídeo de salida esta redimensionado y solo esta mostrando los cambios en los bordes encontrados en los dos frames actuales, por eso cuando ya no hay movimiento, en la salida se ve casi oscuro, porque no hay pixeles con movimientos, la poca fluidez de la salida se debe al tiempo de procesamiento de mis funciones, pero a mi parecer la fluidez esta semi aceptable.



Bien, por mi parte es todo.

Saludos!

1 comentario:

  1. Detección de movimiento en video real; sin distinguir/clasificar la dirección de movimiento y sin distinguir entre objetos. 7 pts.

    ResponderEliminar