Python Mejora de Imágenes Automatizada

Python Mejora de Imágenes: ¡Hola a todos! Quiero compartir una solución que desarrollé para mejorar mis fotos sin horas de horas en Photoshop. Soy programador, y esta herramienta se ha vuelto indispensable tanto en mi trabajo como en mis aventuras en el mundo del marketing. Así que, sin más preámbulos, ¡entremos en acción!
Herramientas Necesarias
El Script: Nuestro Asistente de Mejora de Imágenes
Aquí está la magia: he creado un script Python que automatiza todo el proceso. Imagina que tienes un montón de fotos en un lugar y quieres que todas se vean fabulosas. Eso es exactamente lo que este script hace por ti
Paso 1: Preparación del entorno
Antes de comenzar, organiza tus imágenes en una carpeta y crea una carpeta de salida donde se guardarán las imágenes mejoradas y redimensionadas. Debes de tener las imágenes en formato .jpg o .png.
Asegúrate de tener Python y la biblioteca PIL instalados en tu sistema. Puedes instalar PIL utilizando pip de la siguiente manera:
Bash
pip install pillow
Importa las clases Image y ImageEnhance del módulo PIL. Estas clases se utilizan para trabajar con imágenes y aplicar mejoras a ellas. Tambien importa el módulo os, que se utiliza para interactuar con el sistema de archivos y trabajar con directorios y archivos.
Python
from PIL import Image, ImageEnhance
import os
Ahora debes decirle al script dónde encontrar tus fotos originales y dónde guardar las mejoradas. Esto se hace especificando dos directorios: uno para las fotos de entrada y otro para las de salida. Además, establecemos un tamaño objetivo para nuestras fotos finales.
Python
input_directory = r"C:\Directorio_imagenes"
output_directory = r"C:\Directorio_guardar"
target_size = (1920, 1080)
“imput_directory” define la ubicación del directorio que contiene las imágenes originales que se deben mejorar. Asegúrate de cambiar esta ruta a la ubicación real en tu sistema.
“output_directory” define la ubicación del directorio donde se guardarán las imágenes mejoradas. Asegúrate de cambiar esta ruta a la ubicación real en tu sistema.
“target_size” establece el tamaño objetivo para las imágenes de salida. Las imágenes se redimensionarán para que se ajusten a este tamaño, manteniendo la proporción original.
Paso 2: Mejoras Mágicas
Ahora, definimos tres factores: contraste, brillo y saturación. Estos son los ingredientes secretos que darán vida a nuestras fotos. No te preocupes, no necesitas ser un experto en fotografía para usarlos.
Python
def apply_enhancements(image):
contrast_factor = 1.08
brightness_factor = 1.08
saturation_factor = 1.08
enhancer = ImageEnhance.Contrast(image)
image = enhancer.enhance(contrast_factor)
enhancer = ImageEnhance.Brightness(image)
image = enhancer.enhance(brightness_factor)
enhancer = ImageEnhance.Color(image)
image = enhancer.enhance(saturation_factor)
return image
La función apply_enhancements(image) toma una imagen como entrada y aplica mejoras de contraste, brillo y saturación utilizando los factores de mejora especificados.
contrast_factor, brightness_factor, y saturation_factor son los factores de mejora para el contraste, brillo y saturación, respectivamente.
Se crea un objeto enhancer para cada mejora y se aplica a la imagen usando el método enhance().
Finalmente, la imagen mejorada se devuelve como resultado.
Paso 3: El Bucle!
Aquí viene la parte interesante. El script recorre todas tus fotos en el directorio de entrada, una por una. Solo procesa imágenes en formato JPEG o PNG, ¡así que no te preocupes por los demás archivos!
Python
for filename in os.listdir(input_directory):
if filename.lower().endswith(".jpg") or
filename.lower().endswith(".png"):
input_path = os.path.join
(input_directory, filename)
output_path = os.path.join
(output_directory, filename)
image = Image.open(input_path)
image.thumbnail(target_size)
image = apply_enhancements(image)
image.save(output_path, format="JPEG",
optimize=True,
quality=50)
El bucle for filename in os.listdir(input_directory) itera a través de todos los archivos en el directorio de entrada.
if filename.lower().endswith(“.jpg”) or filename.lower().endswith(“.png”) Comprueba si el nombre del archivo tiene una extensión “.jpg” o “.png” en minúsculas, lo que indica que es una imagen que debe procesarse.
input_path = os.path.join(input_directory, filename): Construye la ruta completa del archivo de entrada combinando la ubicación del directorio de entrada y el nombre del archivo.
output_path = os.path.join(output_directory, filename): Construye la ruta completa del archivo de salida combinando la ubicación del directorio de salida y el nombre del archivo.
image = Image.open(input_path): Abre la imagen de entrada utilizando la función Image.open() de PIL y almacena la imagen en la variable image.
image.thumbnail(target_size): Redimensiona la imagen para que se ajuste al tamaño objetivo especificado en target_size. La imagen mantendrá su proporción original.
image = apply_enhancements(image): Aplica las mejoras de contraste, brillo y saturación a la imagen utilizando la función apply_enhancements().
image.save(output_path, format=”JPEG”, optimize=True, quality=50): Guarda la imagen mejorada en la ubicación de salida especificada. La imagen se guarda en formato JPEG con una calidad del 50%. El parámetro optimize se establece en True para optimizar la imagen al guardarla.
Paso 4: Transformación
Ejecuta el script Python para procesar tus imágenes. Asegúrate de que los directorios de entrada y salida estén configurados correctamente.
Bash
python tu_script.py
¡Y eso es todo! Con este script simple pero efectivo, puedes darle un toque de magia a tus fotos en un instante, ya sea para trabajo o proyectos personales.
En mis próximo artículo, exploraré aún más trucos y proyectos de programación. ¡Así que, atentos!
Y si disfrutan del contenido, considerar hacer una donación me ayudará a seguir creando. También, ¡me encantaría conocer sus sugerencias! Dejen sus comentarios sobre temas que quieren que trate. ¡Gracias por su apoyo!
¡Suscríbete a nuestro newsletter para recibir noticias y artículos cada semana o mes!
¡Mantente al día con las últimas novedades en marketing, desarrollo web y análisis de datos!
Hello, i think that i saw you visited my website so i came to “return the favor”.I am attempting to find things to enhance
my site!I suppose iits ok to use a few of your ideas!! https://lvivforum.pp.ua/
Hi, thanks for visiting the blog. The apps I share here can be used, improved, or whatever you like. I’m more than happy to help.
If you use something from my blog in a post, don’t forget to add a link to this blog. Regards!