4 de febrero de 2013

Actividad 1: Aplicar Filtros a Imágenes

Laboratorio de Visión Computacional
Actividad 1

Como primer actividad de laboratorio se nos pidió aplicar filtros a imágenes desde python manipulando los pixeles y no usando ninguna librería para aplicar directamente el filtro. Solo se utilizo la librería PIL de python para abrir las imágenes y hacer uso de los métodos getpixel y putpixel

Los filtros que logre aplicar fueron los siguientes:
  1. Blanco y negro
  2. Escala de grises
  3. Umbrales
  4. Promedio: Usando pixeles norte, sur, este y oeste para promediar
  5. Promedio: Usando todos los pixeles vecinos
  6. Negativo
  7. Sepia

Para aplicar el filtro blanco y negro, saco el promedio de los valores de cada pixel y luego los comparo con un valor determinado, si el promedio es menor al valor cambiamos el pixel a negro y si el promedio es mayor al valor cambiamos a blanco.


Para el filtro de escala de grises lo que se necesita es simplemente obtener el promedio de los valores de r, g y b de cada pixel y luego modificar ese pixel colocando el valor del promedio en los valores r, g y b.


El de umbrales es prácticamente una combinación de los dos anteriores, solo que aquí aplicamos un valor máximo y uno mínimo para determinar cuando convertir a blanco o negro el pixel.


EL filtro de negativo es muy simple, se resta el valor r, g y b de 255, y luego colocamos ese nuevo valor en el pixel.


Esta imagen es aplicando el primer método de promedio 3 veces.


Esta imagen es aplicando el segundo método de promedio también 3 veces. Podemos notar que en comparación con la imagen anterior se logra ver un poco más difuminado.


El filtro de sepia implica alterar los valores r, g y b. El valor de r se eleva, el valor de g se eleva menos drásticamente, y en el b se disminuye. Podrían haber sido otro tipo de combinaciones, como elevar solo el valor de r (rojo) y g (verde), pero lo que yo aplique me dio un resultado como sigue.


Por último esta es una combinación de filtros, primero fue escala de grises, luego el del promedio aplicado 3 veces y por ultimo el de blanco y negro.


Les dejo el código para generar estas imágenes.


Pueden probar el programa con el siguiente comando:
~$ python filters.py imagen.jpg
Necesitan tener una imagen en el directorio en el que estén ejecutando el programa.

El programa desplegará una ventana como la siguiente donde puede aplicarse varios filtros a la imagen y es posible ver la original y la modificada.


1 comentario:

Nota: solo los miembros de este blog pueden publicar comentarios.