Laboratorio de Visión Computacional
Actividad 1
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:
- Blanco y negro
- Escala de grises
- Umbrales
- Promedio: Usando pixeles norte, sur, este y oeste para promediar
- Promedio: Usando todos los pixeles vecinos
- Negativo
- 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
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.
:) 10 pts por el primer lab.
ResponderEliminar