martes, 12 de febrero de 2013

[VISIÓN COMPUTACIONAL] Deteccion de bordes mediante Convolución

Para la clase, desarrollamos una subrutina que aplica una mascara de convolución a una imagen. La meta es lograr ver los bordes de la imagen. Para esto yo utilizaré 3 imágenes de diferentes tamaños. La primera es:
de 960x960.

La segunda es:
de 494x568.

La tercera es :
de 300x274.

La pregunta es, ¿Por qué cambie a Hayden por lolcats? La respuesta es, por las frases, tienen un contorno fácil de identificar.

Empezaré por una mascara Prewitt (horizontal y vertical):


 


Ahora aplicare la mascara Sobel (horizontal y vertical):




Por ultimo, realicé una combinación de la mascara Sobel (horizontal+vertical) para intentar obtener los bordes de las imágenes. Los resultados fueron los siguentes:



Como se puede observar para este ultimo intento, las imágenes muestran bordes más definidos, puesto que se combinan las matrices.

Se suman las matrices Sobel horizontal y vertical:

Se obtiene la siguente matriz:

Los tiempos promedio para cada imagen:

Para la imagen chica: 2.35 segundos.
Para la imagen mediana 8.42 segundos.
Para la imagen grande 27.86 segundos.

El código utilizado es:


(Solo se muestra la matriz de borde final, en el repositorio está el código completo incluyendo las matrices utilizadas, además de otras que se usaron en varias pruebas).

Proyecto:
https://github.com/victoralex911/vision-computacional

1 comentario: