jueves, 7 de febrero de 2013

[VISIÓN COMPUTACIONAL] Lab 1: Filtros

Para ésta primera entrada de laboratorio nos dimos a la tarea de generar unos filtros para imágenes. Los filtros son: escala de grises, filtro promedio y umbrales.

La forma de generar una escala de grises es tomando el valor RGB de un pixel dado y aplicarle alguna operación, ya sea el mínimo, el máximo, el promedio del RGB, etc. Yo decidí aplicar los tres y dejar la decisión al usuario.

Para todos los casos usaré la siguiente imagen:

Ahora mostraré la imagen después de aplicarle una escala de grises basada en el promedio del RGB:

La misma pero después de aplicarle una escala de grises basada en el máximo y mínimo:
Máximo
Mínimo

Como se ve, el promedio del RGB se acerca más a una equivalencia entre el color y la escala de grises, por lo cual usaré este mismo en los demás filtros. En el código incluyo además la posibilidad de seleccionar un canal R, G, o B para aplicar como escala.

Código:
Ahora aplicaré a la misma imagen un umbral para binarizarla. Para este caso creo dos condiciones; si un pixel dado tiene un valor de gris menor o igual al umbral, el pixel se hace negro (valor 0); si el pixel tiene un valor de gris mayor al umbral, el pixel se hace blanco (valor 255), de esta manera al recorrer toda la imagen obtenemos lo siguiente:
Umbral a 127
Umbral a 80
Umbral a 170

Código:
Finalmente agregué un filtro promedio, que lo que hace es dar un efecto "blur" a toda la imagen. El filtro lo que hace es tomar un pixel y sus vecinos, en este caso sus vecinos son el pixel norte, pixel sur, pixel este y pixel oeste. Se toman sus promedios de sus valores de gris y se dividen entre el numero de vecinos, el resultado se aplica al pixel seleccionado. Se hace lo mismo para cada pixel varias veces para lograr un efecto más notable.

La imagen después de aplicarle el filtro:
1 vez
3 veces
10 veces
42 veces

Código:
Y solo para jugar y experimentar un rato, decidí hacer otros filtros:
Filtro promedio a color 15 veces
Extracción del color Rojo
Extracción de color Verde
Extracción de color Azul
Inversión de color
Código completo:
Repositorio del proyecto:
https://github.com/victoralex911/vision-computacional

1 comentario: