File size: 1,290 Bytes
447ffa7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import gradio as gr
import tensorflow as tf
import numpy as np
from PIL import Image

# --- Cargar el modelo completo ---
model = tf.keras.models.load_model("autoencoder_complete_model_Fourier.keras")

# --- Transformaciones necesarias ---
def preprocess_image(img):
    """ Prepara la imagen para el modelo (escala 0-1 y redimensiona a 256x256). """
    img = img.resize((256, 256))  # Asegurar tamaño correcto
    img_array = np.array(img) / 255.0  # Normalizar entre 0 y 1
    img_array = np.expand_dims(img_array, axis=0)  # Añadir batch dimension
    return img_array

def denoise_image(img):
    """ Pasa la imagen ruidosa por el autoencoder y devuelve la imagen reconstruida. """
    img_array = preprocess_image(img)

    # Pasar la imagen por el autoencoder
    denoised_img = model.predict(img_array)

    # Postprocesamiento
    denoised_img = np.squeeze(denoised_img)  # Remover batch dimension
    denoised_img = (denoised_img * 255).astype(np.uint8)  # Convertir a formato uint8
    return denoised_img

# --- Interfaz Gradio ---
gr.Interface(fn=denoise_image,
             inputs=gr.Image(type="pil"),  # Imagen de entrada
             outputs=gr.Image(type="numpy"),  # Imagen de salida
             examples=["noisy1.jpg", "noisy2.jpg"]  # Ejemplos opcionales
).launch()