martes, 12 de febrero de 2013

Tarea 1 Clase: Detección de Bordes

En esta tarea tenemos que detectar lo que son los bordes en una imagen, para lo cual se realiza lo siguiente:


  • Primero convertimos la imagen a escala de grises
  • Le aplicamos filtro
  • Aplicamos convolución
  • Aplicamos normalización
  • Aplicamos binarización
La imagen original es:



Escala de grises: En esta parte se convierte la imagen en escala de grises.

Código
Imagen obtenida:


Le aplicamos filtro:

Para usar el filtro ya trabajamos con la imagén en escala de grises
  1. Seleccionamos los vecinos de cada uno de los pixeles
  2. Sumamos la escala de grises q le pertenece a cada pixel vecino
  3. Sacamos un promedio de la suma de lo anterior
  4. Y lo asignamos al pixel
Código:

Imagen obtenida





Aplicamos convolución

Para aplicar convolución utilizamos el operador de sobel, aplicamos el gradiente horizontal y vertical al mismo tiempo obteniendo la magnitud del gradiente, para más información sobre este tema.

Código
Imagen obtenida



Aplicamos normalización

Para aplicar normalización se hace de la siguiente manera:
De la imagen que nos arrojo la convolución seleccionamos el valor del pixel mas alto y mas bajo:

 r = smaximo-minimo
 prop = 255.0/r
 p =int(floor((p-minimo)*prop))
El resultado lo aplicamos al pixel

Código:
Imagen obtenida







Aplicamos binarización

Le damos al programa un valor el cual ayudara a binarizar la imagen, por ejemplo valor=34
si el velor del pixel es mayor al valor 34 el pixel se hace blanco si es menor el pixel se hace negro.

Código:
Imagen obtenida





Tiempo que tardo en ejecutarse escala de grises = 1.02590990067 segundos
Tiempo que tardo en ejecutarse filtro = 2.71544289589 segundos
Tiempo que tardo en ejecutarse convolucion = 2.23032712936 segundos
Tiempo que tardo en ejecutarse normalizar = 2.07841897011 segundos
Tiempo que tardo en ejecutarse binzarizar = 0.44579911232 segundos


1 comentario: