import numpy as np from PIL import Image from skimage.util import random_noise # --- Configuración --- dimensiones = (256, 256) # Tamaño objetivo # --- Normalización de una imagen --- def normalize_image(img): """ Normaliza una imagen PIL a valores entre [0,1] y la redimensiona a (256,256). """ img = img.resize(dimensiones) # Redimensionar a tamaño estándar img_array = np.array(img, dtype=np.float32) / 255.0 # Normalizar a rango [0, 1] return img_array # --- Añadir ruido gaussiano --- def add_gaussian_noise(img_array): """ Añade ruido gaussiano a una imagen normalizada en el rango [0,1]. """ img_noisy = random_noise(img_array, mode='gaussian', mean=0, var=0.3) return img_noisy # --- Preprocesamiento de una sola imagen (para Gradio) --- def preprocess_single_image(img): """ Toma una imagen PIL, la normaliza y le añade ruido, devolviendo ambas versiones. """ img_clean = normalize_image(img) # Normalizar imagen img_noisy = add_gaussian_noise(img_clean) # Agregar ruido return img_noisy, img_clean # Retornar imagen con ruido y original normalizada