web-dev-qa-db-fra.com

Comment accéder à ma webcam en Python?

Je souhaite accéder à ma webcam depuis Python.

J'ai essayé d'utiliser l'extension VideoCapture ( tutorial ), mais cela ne fonctionnait pas très bien pour moi, j'ai dû contourner certains problèmes, car c'est un peu lent avec les résolutions > 320x230, et parfois il renvoie None sans raison apparente.

Existe-t-il un meilleur moyen d'accéder à ma webcam depuis Python?

55
Rodrigo

OpenCV prend en charge l'obtention de données à partir d'une webcam, et il est livré avec des wrappers Python par défaut, vous devez également installer numpy pour l'extension OpenCV Python (appelée cv2) travailler. À partir de 2019, vous pouvez installer ces deux bibliothèques avec pip: pip install numpypip install opencv-python

Plus d'informations sur l'utilisation d'OpenCV avec Python .

Un exemple copié de Affichage du flux webcam en utilisant opencv et 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
cv2.destroyWindow("preview")
52
John Montgomery

Cela aurait dû être un commentaire à @John Montgomery, mais mon représentant ne me permet pas de faire des commentaires. Votre réponse est excellente, mais au moins sous Windows, il manque la ligne

vc.release()

avant

cv2.destroyWindow("preview")

Sans cela, la ressource de la caméra est verrouillée et ne peut pas être capturée à nouveau avant que la console python ne soit tuée.

13
Robert

gstreamer peut gérer l'entrée webcam. Si je me souviens bien, il existe des liaisons python pour cela!

1
Kknd