import gradio as gr import tensorflow as tf import numpy as np import cv2 import datetime # Carregue o modelo treinado model_path = 'modelo_treinado.h5' model = tf.keras.models.load_model(model_path) class_labels = ["Normal", "Cataract"] def classify_image(input_image): # Redimensione a imagem de entrada para o tamanho esperado pelo modelo input_image = tf.image.resize(input_image, (192, 256)) input_image = (input_image / 255.0) input_image = np.expand_dims(input_image, axis=0) # Faça a previsão prediction = model.predict(input_image) class_index = np.argmax(prediction) predicted_class = class_labels[class_index] # Crie uma cópia da imagem de entrada para exibir output_image = input_image[0].copy() output_image = (output_image * 255).astype('uint8') # Desenhe uma caixa de detecção na imagem cv2.putText(output_image, predicted_class, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') cv2.putText(output_image, timestamp, (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2) return output_image # Configurar a interface Gradio gr.Interface( fn=classify_image, inputs="image", outputs="image", live=True ).launch()