import gradio as gr import cv2 import time # Función de detección de anomalías simulada def anomaly_detection(frame): # Procesamiento simulado del frame, reemplázalo con el modelo real # En este ejemplo, solo convertimos el frame a escala de grises gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) return gray_frame # Generador que procesa cada fotograma capturado y lo muestra def process_frames(): cam_stream = cv2.VideoCapture(0) # Inicializa la cámara while True: # Captura el fotograma ret, frame = cam_stream.read() if not ret: break # Realiza la detección de anomalías processed_frame = anomaly_detection(frame) # Devuelve el fotograma procesado a Gradio yield processed_frame # Control de frecuencia para simular "real-time" time.sleep(0.1) cam_stream.release() # Configuración de la interfaz de Gradio iface = gr.Interface( fn=process_frames, # Llamada a la función generadora de frames inputs=None, # No se requiere entrada manual del usuario outputs=gr.Image(type="numpy", label="Segmentation Result"), # Salida de tipo imagen en formato numpy live=True # Para activar la captura en modo vivo ) iface.launch() # Lanza la aplicación