lunes, 11 de febrero de 2013

Filtro y Detección de bordes

Para este semana se trabajo con el Filtro de imagen y la detección de bordes primero que nada explicare lo del filtro y después los bordes.

Filtro

Para la aplicación del filtro utilizaremos la imagen generada por la escala de grises, a esta imagen tenemos que revisar los vecinos de cada pixel en la imagen, después generamos un promedio sumando el valor de gris de todos los vecinos encontrados en el pixel actual que estemos revisando, esto sera después dividido por la cantidad de vecinos encontrados.

En la siguiente imagen explico el proceso de una forma mas clara:
El cuadro de la derecha representa el pixel, la A representa el pixel actual que se esta revisando en cada corrida se revisa un pixel diferente hasta completar la imagen, en cada corrida por medio de trys se revisa los vecinos de arriba,abajo, izquierda y derecha los vecinos se representan en este caso por circulos, en caso de encontrar el vecino una variable llamada promedio toma el valor de el gris del vecino y se suma como un contador al final de revisar todos los vecinos el promedio total se divide entre la cantidad de vecinos que se hayan encontrado en cada corrida y el pixel actual toma el valor del promedio/cantidad de vecinos como su R,G,B.


La imagen con la que se trabajo es la siguiente:



Original



 

                     Escala de Grises                                                    Filtro

El código que se utilizo es el siguiente:



Detección de bordes

Para la detección de bordes se utilizo 2 operadores de 3x3 elementos, esto para aplicar convolucion. Tenemos los 2 operadores:



A=La imagen original
Gx=Cambios horizontales
Gy=Cambios Verticales

Una ves hecho esto sumamos los cambios verticales y los cambios horizontales para obtener la magnitud gradiente. La formula es la siguiente:



Ya con esta teoría podemos aplicarlo de la misma manera en nuestro código utilizando las mismas formulas y queda de la siguiente manera:


Las imágenes resultantes nos quedan de la siguiente manera:


                    Original                                                                Bordes

Tiempos de ejecución:




Código Completo:




Otros Ejemplos

                       Original                                         Filtro
                               
                                                    Bordes

Tiempos:




                     Original                                        Filtrada
                             
                                                   Bordes

Tiempos:


Liga a Repositorio

Fuentes:





1 comentario: