Python es un lenguaje de programación muy versátil y potente que se puede usar para una gran variedad de tareas. Una de esas tareas es el análisis de imágenes, que es algo en lo que Python destaca gracias a la librería Pillow.
¿Qué es Pillow?
Pillow es una librería de Python que permite manejar imágenes de manera sencilla y eficiente. Esta librería incluye una gran variedad de funciones que facilitan el procesamiento de imágenes, como la carga y guardado de imágenes, la conversión entre diferentes formatos de imagen, la manipulación de píxeles, entre otras cosas.
Instalación
Antes de empezar a usar Pillow, es necesario instalarlo en nuestro sistema. Para hacer esto, podemos usar pip, el gestor de paquetes de Python:
pip install Pillow
Una vez instalado, podemos empezar a usar Pillow en nuestros programas de Python.
Carga y guardado de imágenes
Una de las tareas más comunes al trabajar con imágenes es cargar y guardar imágenes en diferentes formatos. Pillow nos permite hacer esto de manera sencilla y eficiente.
Carga de imágenes
Para cargar una imagen con Pillow, podemos usar la función Image.open(). Esta función recibe como argumento la ruta de la imagen que queremos cargar:
from PIL import Image
img = Image.open("imagen.jpg")
En este ejemplo, hemos cargado una imagen llamada «imagen.jpg» en la variable «img».
Guardado de imágenes
Para guardar una imagen con Pillow, podemos usar el método save() de la imagen. Este método recibe como argumento la ruta y el nombre de archivo en el que queremos guardar la imagen:
img.save("imagen.png")
En este ejemplo, hemos guardado la imagen en formato PNG con el nombre «imagen.png».
Manipulación de imágenes
Otra tarea común al trabajar con imágenes es la manipulación de las mismas. Pillow nos permite hacer esto de manera sencilla gracias a una gran variedad de funciones.
Obtención de información de la imagen
Para obtener información de una imagen, como su tamaño o su formato, podemos usar las propiedades de la imagen:
print(img.format) # Imprime el formato de la imagen (JPEG, PNG, etc.)
print(img.size) # Imprime el tamaño de la imagen en píxeles
Conversión de formato
Para convertir una imagen de un formato a otro, podemos usar el método save() de la imagen, junto con el formato en el que queremos guardar la imagen:
img.save("imagen.png") # Guarda la imagen en formato PNG
También podemos especificar ciertas opciones al guardar la imagen, como la calidad en el caso de JPEG:
img.save("imagen.jpg", quality=90) # Guarda la imagen en formato JPEG con calidad 90
Escalado de imágenes
Para escalar una imagen, podemos usar el método resize() de la imagen. Este método recibe como argumento el tamaño al que queremos escalar la imagen:
img_resized = img.resize((800, 600)) # Escala la imagen a 800x600 píxeles
En este ejemplo, hemos escalado la imagen a un tamaño de 800×600 píxeles.
Recorte de imágenes
Para recortar una imagen, podemos usar el método crop() de la imagen. Este método recibe como argumento una tupla que representa el área que queremos recortar:
area = (100, 100, 400, 400) # Área que queremos recortar (x1, y1, x2, y2)
img_cropped = img.crop(area) # Recorta la imagen en el área especificada
En este ejemplo, hemos recortado una área de la imagen que va desde las coordenadas (100, 100) hasta las coordenadas (400, 400).
Manipulación de píxeles
Para manipular los píxeles de una imagen, podemos usar el método load() de la imagen. Este método nos devuelve una matriz con los valores de los píxeles de la imagen, que podemos manipular a nuestro antojo:
pixels = img.load() # Carga los píxeles de la imagen en una matriz
for x in range(img.width):
for y in range(img.height):
r, g, b = pixels[x, y] # Obtiene los valores de los píxeles en la posición (x, y)
r /= 2 # Divide el valor del canal rojo por dos
g /= 2 # Divide el valor del canal verde por dos
b /= 2 # Divide el valor del canal azul por dos
pixels[x, y] = (r, g, b) # Asigna los nuevos valores de los píxeles a la matriz
En este ejemplo, hemos dividido por dos los valores de los canales rojo, verde y azul de todos los píxeles de la imagen.
Gracias a la librería Pillow, Python se convierte en una herramienta muy potente para el análisis de imágenes. Con las funciones que hemos visto en este tutorial, podemos cargar y guardar imágenes en diferentes formatos, así como manipularlas de diferentes maneras. Con un poco de creatividad, las posibilidades son infinitas.