How do I access my webcam in Python?

Question:

I would like to access my webcam from Python.

I tried using the VideoCapture extension (tutorial), but that didn’t work very well for me, I had to work around some problems such as it’s a bit slow with resolutions >320×230, and sometimes it returns None for no apparent reason.

Is there a better way to access my webcam from Python?

Asked By: Rodrigo

||

Answers:

gstreamer can handle webcam input. If I remeber well, there are python bindings for it!

Answered By: Kknd

OpenCV has support for getting data from a webcam, and it comes with Python wrappers by default, you also need to install numpy for the OpenCV Python extension (called cv2) to work.
As of 2019, you can install both of these libraries with pip:
pip install numpy
pip install opencv-python

More information on using OpenCV with Python.

An example copied from Displaying webcam feed using opencv and python:

import cv2

cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)

if vc.isOpened(): # try to get the first frame
    rval, frame = vc.read()
else:
    rval = False

while rval:
    cv2.imshow("preview", frame)
    rval, frame = vc.read()
    key = cv2.waitKey(20)
    if key == 27: # exit on ESC
        break

vc.release()
cv2.destroyWindow("preview")
Answered By: John Montgomery
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.