Beispiel #1
0
def search_destroy(image):
    "Usa Tracking para seguir al objetivo mientras mueve la torreta y dispara"
    global p_actual
    global objetivo
    global objetivos_destruidos
    global modo
    centro_objetivo = Utiles.centro_rectangulo(objetivo)
    p_actual = Motor_Mockup.desplazamiento(p_actual, centro_objetivo)
    # Utiles.dibuja_puntos(image, [centro])
    # x1, y1, x2, y2 = aume nta_roi(objetivo)

    # cv.imshow("ROI", roi)
    # coordenadas_reducidas(image)
    # cv.waitKey(0)
    # while True:
    image, objetivos = Tracker.tracker(image)
    objetivo = Tracker.actualiza_objetivo(objetivo, objetivos)
    # image = Utiles.atencion_blur(image, objetivo)
    Utiles.dibuja_contornos(image, objetivos)
    Utiles.dibuja_rectangulo(image, objetivo, Config.UI.cyan2)
    image = Utiles.dibuja_mira(image, p_actual)
    # Comprueba si se puede disparar
    p_objetivo = Utiles.centro_rectangulo(objetivo)
    if (destruccion(p_actual, p_objetivo)):
        image = cv.putText(image, "Bang!", (p_actual[0] + 5, p_actual[1] - 5),
                           0, 1, Config.UI.rojo, 2, 16)
        # Limpia la lista de destruidos y agrega el ultimo TODO mejorar
        objetivos_destruidos.append(objetivo)
        if (len(objetivos_destruidos) > 3):
            objetivos_destruidos.pop(0)
        modo = Config.Modo.deteccion
    return image
Beispiel #2
0
        # if(count % Config.Tracker.persistencia == 0 and
        # len(objetivos_destruidos) > 0):
        # print("Hola")
        if modo == Config.Modo.deteccion:
            if (len(objetivos_destruidos) > 0):
                Utiles.mascara_destruidos(image, objetivos_destruidos)
            ROIs = deteccion(image)
            if (len(ROIs) > 1):
                # Asigna solo los rectangulos contendores como objetivos
                objetivos = ROIs[0]
                # image = Utiles.atencion_blur(image, objetivos[0])
                # image = Utiles.multi_atencion_blur(image, objetivos)
                objetivo = Selector.objetivo_prioritario(p_actual, objetivos)
                if (objetivo):
                    modo = Config.Modo.search_destroy
                    Utiles.dibuja_rectangulo(image, objetivo, Config.UI.cyan2)
                    image = Utiles.atencion_blur(image, objetivo)
        else:
            image = search_destroy(image)
            cond = False
            if (cond):
                modo = Config.Modo.deteccion

        if Config.VidProp.show_fps: Utiles.dibuja_FPS(image, fps)
        if Config.VidProp.guardar: Utiles.guardar(out, image)
        cv.imshow(titulo, image)
        # TODO solo 10 frames pausa
        # cv.waitKey(0)
        # if  count > 100: break
        # count += 1
        # TODO solo 10 frames