En este artículo te mostraré cómo manipular imágenes con Python, aplicarle algunos filtros y transformarlas. Lo que te enseñaré será:
- Aplicar filtro de escala de grises y sepia
- Voltear una imagen horizontalmente, como si fuera reflejada en un espejo
- Desenfocar una imagen usando el desenfoque de caja
Todo esto con Python, escribiendo los algoritmos manualmente sin depender de una librería. Eso sí, para leer la imagen como matriz vamos a usar imageio
.
Ya que andamos por aquí te recuerdo que también tengo un post en donde expliqué cómo ocultar texto en imágenes.
Sobre el formato de imagen y numpy
En los ejemplos que te voy a enseñar a continuación voy a usar una imagen de mapa de bits, de 24 bits para ser exactos; y numpy para convertir la imagen a una matriz.
Esto no es totalmente obligatorio, pues si viste mi tutorial de esteganografía sabrás que podemos leer los pixeles de la imagen usando simplemente Image
y el método load
.
Además, en ese mismo tutorial estoy usando una imagen PNG, y no una BMP; por lo que esto puede servir para varios formatos y sin usar numpy.
Sin embargo lo he hecho así porque eso pedía la asignación. El algoritmo es el mismo, solo necesitamos la matriz de pixeles y una manera de leer y escribir imágenes.
Filtros y procesado a imágenes con Python
A continuación te dejo las imágenes con su respectivo filtro y enlace. La original es la siguiente tomada de Pixabay:
Aquí vemos cómo se aplica el filtro de escala de grises, y puedes ver el tutorial haciendo clic aquí:
Igualmente tenemos el modo sepia con Python:
Y finalmente el desenfoque de caja que para mí es el más difícil de aplicar. Para esta imagen te recomiendo descargar la original y la difuminada para que logres apreciar el desenfoque:
Por si te gusta Python, te dejo más contenido aquí.