Fix guardado de imagenes

This commit is contained in:
2026-01-13 13:15:16 -03:00
parent eb19a557c3
commit 9b15c7a480

View File

@@ -5,6 +5,7 @@ import os
import time
import threading
import re
import numpy as np
from datetime import datetime
from queue import Queue
from flask import Flask, Response, jsonify
@@ -43,6 +44,11 @@ def save_plate_capture(plate_number, full_frame):
"""Guarda la captura de la patente para el dataset con cooldown"""
current_time = time.time()
# Validar que el frame no esté vacío
if full_frame is None or full_frame.size == 0:
print(f"⚠️ Empty frame, skipping save for {plate_number}")
return False
# Verificar cooldown
with captures_lock:
if plate_number in recent_captures:
@@ -56,10 +62,23 @@ def save_plate_capture(plate_number, full_frame):
try:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
# Hacer una copia profunda del frame para evitar race conditions
frame_to_save = np.copy(full_frame)
# Solo guardar frame completo
filename = f"{plate_number}_{timestamp}.jpg"
filepath = f"{DATASET_DIR}/{filename}"
cv2.imwrite(filepath, full_frame, [cv2.IMWRITE_JPEG_QUALITY, 95])
# Guardar imagen
success = cv2.imwrite(filepath, frame_to_save, [cv2.IMWRITE_JPEG_QUALITY, 95])
# Verificar que el archivo se guardó correctamente
if not success or not os.path.exists(filepath) or os.path.getsize(filepath) == 0:
print(f"❌ Failed to save image for {plate_number}")
# Eliminar archivo vacío si existe
if os.path.exists(filepath):
os.remove(filepath)
return False
# Contar total de capturas
total_count = len([f for f in os.listdir(DATASET_DIR) if f.endswith('.jpg')])