import re # Definir nuestras funciones auxiliares para verificación de imágenes helper_functions = ''' # Función auxiliar para verificar si una imagen es válida antes de redimensionar def is_valid_image(img): if img is None: return False try: # Verificar que la imagen tenga dimensiones válidas y datos return img.size > 0 and len(img.shape) >= 2 and img.shape[0] > 0 and img.shape[1] > 0 except: return False # Función auxiliar para redimensionar de forma segura def safe_resize(img, target_size): if is_valid_image(img): try: return cv2.resize(img, target_size) except Exception as e: print(f"Error al redimensionar: {str(e)}") return None return None ''' # Modificar código para usar funciones seguras with open('streamlit_app.py', 'r', encoding='utf-8') as file: content = file.read() # Buscar la definición de la función stop_feature_camera if 'def stop_feature_camera' in content: # Añadir nuestras funciones auxiliares después de esta función content = content.replace( 'def stop_feature_camera():', 'def stop_feature_camera():' + helper_functions ) # Buscar y reemplazar los usos de cv2.resize content = content.replace( 'thumbnail = cv2.resize(info[\'image\'], (w//4, h//4))', 'thumbnail = safe_resize(info[\'image\'], (w//4, h//4))\n if thumbnail is not None' ) # También reemplazar otros posibles usos de resize en el procesamiento de video content = content.replace( 'small_img = cv2.resize(img, (int(w * scale_factor), int(h * scale_factor)))', 'small_img = safe_resize(img, (int(w * scale_factor), int(h * scale_factor)))\n if small_img is None:\n return frame' ) # Escribir el contenido modificado al archivo with open('streamlit_app.py', 'w', encoding='utf-8') as file: file.write(content) print("Archivo actualizado correctamente con verificaciones de imágenes seguras.")