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
    # return cv.hconcat([image, img]) # # DEBUG
    return img, objetivos


if __name__ == "__main__":
    # DEBUG Prueba de las funciones (No se usara, Archivo usado como libreria)
    titulo = "Tracker"
    # Config.Fullscreen(titulo)
    out = None
    if Config.VidProp.guardar:
        from Config import VidProp
        out = cv.VideoWriter(f"Salida/{titulo}.avi", VidProp.fourcc,
                             VidProp.fps, VidProp.resolu)
    cap = cv.VideoCapture(Config.VidProp.source)
    fps = FPS().start()

    while cap.isOpened():
        ret, image = cap.read()
        if not ret: break
        image, objetivos = tracker(image)
        Utiles.dibuja_contornos(image, objetivos)
        if Config.VidProp.show_fps: Utiles.dibuja_FPS(image, fps)
        cv.imshow(titulo, image)
        if Config.VidProp.guardar:
            Utiles.guardar(out, image)
        # if (cv.waitKey(40) & 0xFF == ord('q')):
        if (cv.waitKey(1) & 0xFF == 27):
            break
    if Config.VidProp.guardar: out.release()
    cap.release()