ComputerVisionProject / fix_resize_error.py
jarondon82's picture
Actualizar configuración para detección facial en tiempo real
fecfd49
raw
history blame
2.08 kB
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.")