def actualiza_objetivo(objetivo, objetivos): "Actualiza el objetivo si se mueve" # No hay nuevos objetivos, nos quedamos con el que se detecto if (len(objetivos) < 1): return objetivo # Elimina las detecciones del tracker con area muy distinta del objetivo x, y, w, h = objetivo area_objetivo = w * h rectangulos = Utiles.genera_rectangulos(objetivos) rectangulos = Utiles.elimina_rect_irelevantes(rectangulos, area_objetivo) # Los objetivos no eran suficientemente similares en area if (len(rectangulos) < 1): return objetivo # Cambia el objetivo por el mas cercano detectado por el tracker distancia_max = max(w, h) p_objetivo = Utiles.centro_rectangulo(objetivo) objetivo_alt = Selector.objetivo_prioritario(p_objetivo, rectangulos, distancia_max) if (len(objetivo_alt) > 0): return objetivo_alt # No habia un objetivo lo suficientemete cercano return objetivo