Search code examples
pythonpython-2.7opencvwebcamvideo-capture

How do I display multiple webcam feeds side by side using OpenCV Beta 3.0.0 and Python?


I am working on a project that requires that I display 3 (and possibly more) webcam feeds side by side. To tackle this project, I am using OpenCV Beta 3.0.0 and Python 2.7.5 because I am slightly familiar with the language. Also, how do I display the video in color?

Here is my current code:

import cv2
import numpy as np

capture = cv2.VideoCapture(0)
capture1 = cv2.VideoCapture(1)

while True:
    ret, frame = capture.read()

    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

    cv2.imshow("frame",gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
capture.release()
cv2.destroyAllWindows()

Solution

  • import cv2
    import numpy as np
    
    capture = cv2.VideoCapture(0)
    capture1 = cv2.VideoCapture(1)
    
    while True:
        _, frame1 = capture.read()
        _, frame2 = capture1.read()
        frame1 = cv2.cvtColor(frame1,cv2.COLOR_BGR2RGB)
        frame2 = cv2.cvtColor(frame2,cv2.COLOR_BGR2RGB)
        cv2.imshow("frame1",frame1)
        cv2.imshow("frame2",frame2)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    capture1.release()
    capture2.release()
    cv2.destroyAllWindows()
    

    To display color you simply don't convert to grayscale. To show two frames simultaneously just call imshow() twice. As for side by side, you can play with the frame positions if you really want. Also notice that the I converted the frames from BGR to RGB.