miércoles, 15 de mayo de 2013

Detección de movimiento

Buenas el día de hoy les tenemos una manera sencilla de detectar movimiento.

Bueno Empezamos

Lo primero que tenemos que hacer, es obtener las imágenes que usaremos, en este caso nos apoyamos de opencv para obtener las imágenes que tomamos desde cámara web. Para esto se toman dos frames de la cámara estilo "stop motion", esto significa que tomamos una foto y para la siguiente foto movemos un poco el objeto (carrito en este caso) en una dirección diferente.

 Antes


Después



Como apreciamos, en cada imagen el "carrito" se esta moviendo mas hacia a la derecha, esto lo podemos notar ya que la llanta trasera se aprecia y en la anterior no.

Ya teniendo las imágenes, cada una de estas se procesan de la siguiente manera:

Escala de grises
Filtro
Bordes
Binarización

Código del todo el proceso



Ya teniendo la binarización de ambas se saca la diferencia entre estas. Esto significa que si los pixeles son iguales en la nueva imagen nos pintara color negro y en caso de que difiera serán puntos blanco s o lineas blancas quedando de la siguiente manera:

Antes


Después


Diferencia:




Código de esto



Ya teniendo esto, el siguiente proceso a realizar es el calcular la movilidad y mostrarla, lo que se realizo fue una comparación entre la anterior y la imagen diferenciada para quitar pequeños ruido y al final comparar la anterior con esta nueva imagen diferenciada y obtener la dirección en que se moviera los pixeles.

El desplazamiento solo se tomo de izquierda o derecha. Para eso solo se fue aumentando o disminuyendo el valor de la posición del eje horizontal y buscando el pixel mas cercano ya sea a la izquierda o la derecha.

Resultado Final:




Código de esto



Esto es todo 



1 comentario:

  1. Detección de movimiento desde imágenes, sin clasificar dirección. 6 pts.

    ResponderEliminar