es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Transmisión de video de Opencv de dos cámaras en la misma ventana.

Estoy intentando transmitir en tiempo real dos cámaras simultáneamente en una sola ventana usando OpenCV. ¿Alguna idea de cómo puedo hacerlo?
Puedo hacerlo usando ventanas diferentes y threading, pero quiero incorporar los dos streams en una sola ventana.

NOTA: Las cámaras tienen la misma resolución.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para transmitir simultáneamente dos cámaras dentro de una ventana utilizando OpenCV, puedes seguir los siguientes pasos:

    1. Usa la función cv2.VideoCapture() para capturar el flujo de video de ambas cámaras.
    cap1 = cv2.VideoCapture(0)
    cap2 = cv2.VideoCapture(1)
    
    1. Crea un bucle while para leer continuamente los fotogramas de ambas cámaras simultáneamente.
    while True:
         ret1, frame1 = cap1.read()
         ret2, frame2 = cap2.read()
    
         # Combina los dos fotogramas horizontalmente
         combined_frame = np.hstack((frame1,frame2))
    
         # Muestra el fotograma combinado
         cv2.imshow('Fotograma combinado', combined_frame)
    
         # Sal del bucle cuando se presione la tecla 'q'
         if cv2.waitKey(1) & 0xFF == ord('q'):
             break
    
    1. Dentro del bucle while, utiliza la función np.hstack() para apilar los fotogramas en horizontal y combinarlos en un solo fotograma.
    2. Muestra el fotograma combinado utilizando la función cv2.imshow() con un nombre para la ventana.

    3. Utiliza la función cv2.waitKey() para esperar un evento del teclado, y sale del bucle cuando se presiona la tecla ‘q’.

    Nota: Asegúrate de que ambos flujos de cámara tengan la misma resolución o puede que necesites cambiar el tamaño de los fotogramas antes de combinarlos.

Comments are closed.