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?
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 numpy
pip 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")
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.
gstreamer peut gérer l'entrée webcam. Si je me souviens bien, il existe des liaisons python pour cela!