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:
Bordes
Tiempos:
Original Filtrada
Otros Ejemplos
Original Filtro
Bordes
Tiempos:
Original Filtrada
Bordes
Tiempos:
Ojo con los acentos. 5 pts.
ResponderEliminar