Análisis de imágenes utilizando Python y la librería Pillow

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.

No te pierdas los últimos artículos:

Web Scraping con Python y BeautifulSoup para Principiantes

Bienvenido a esta guía sobre Web Scraping con Python y BeautifulSoup, diseñada especialmente para principiantes. Si estás buscando aprender a extraer datos de sitios web de manera eficiente, seguro que ...

Curso de Python Básico Gratis

Módulo 1: Introducción a Python Nuestra meta principal es que, al final de este curso, tengas una sólida comprensión de los fundamentos de Python y estés listo para crear tus ...

Sistemas Expertos: ¿Qué son y para qué sirven?

Los sistemas expertos representan una rama fascinante de la inteligencia artificial, diseñada para emular la toma de decisiones de un humano experto en un campo particular. Estas herramientas avanzadas combinan ...

La Historia de la Inteligencia Artificial contada en Años

¿Cómo comenzó todo? Echemos un ojo a la historia de la IA a lo largo del tiempo. Desde 1950 hasta 2024. El artículo es largo, usa la tabla de contenidos ...

¿Qué es el meta-aprendizaje?

El mundo de la Inteligencia Artificial (IA) está en constante evolución, y una de las áreas más intrigantes y prometedoras es el metaaprendizaje. Pero, ¿qué es exactamente el metaaprendizaje y ...
Cargando...