2009-03-03 8 views
49

Ich möchte von Python auf meine Webcam zugreifen.Wie greife ich auf meine Webcam in Python zu?

Ich versuchte, die VideoCapture Erweiterung (tutorial) verwenden, aber das hat nicht funktioniert sehr gut für mich, ich hatte so um einige Probleme zu arbeiten, wie es mit Auflösungen langsam Bit ist> 320x230, und manchmal gibt es None für keine ersichtlichen Grund.

Gibt es eine bessere Möglichkeit, von Python auf meine Webcam zuzugreifen?

+0

Bitte klären Sie, welche Betriebssysteme Sie unterstützen müssen. –

+0

Siehe auch: [Python-Bibliothek für die Aufnahme von Kamerabildern] (http://softwarerecs.stackexchange.com/q/18134/1834) –

+0

Und: [Warum werden Webcam-Bilder mit Python so dunkel gemacht?] (Http: // stackoverflow .com/q/28566972/562769) –

Antwort

40

OpenCV unterstützt das Abrufen von Daten von einer Webcam, und es wird standardmäßig mit Python-Wrappern geliefert. Sie müssen auch numpy für die OpenCV Python-Erweiterung (cv2) installieren, damit sie funktioniert.
Zum Zeitpunkt des Schreibens (Januar 2015) gibt es keine noch Python 3 Unterstützung, so dass Sie 2. Python verwenden müssen

More information on using OpenCV with Python.

Ein kopiertes Beispiel von 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 
cv2.destroyWindow("preview") 
+0

Es gibt Python 3-Unterstützung, wenn Sie von Wheel installieren. Ich habe dieses Tutorial erfolgreich verwendet: https://www.solarianprogrammer.com/2016/09/17/install-opencv-3-with-python-3-on-windows/ –

-2

Die einzige, die ich verwendet habe, ist Videocapture, die Sie bereits erwähnt haben Sie nicht wie (obwohl ich keine Probleme damit hatte, welche Fehler haben Sie begegnen?)

Ich war nicht in der Lage zu finden Irgendwelche Alternativen in der Vergangenheit oder jetzt, also könntest du entweder mit VideoCapture festhängen oder eine nette C-Bibliothek finden und einen Python-Wrapper dafür schreiben (was mehr Arbeit sein kann, als du willst).

+1

Ok, habe die Frage bearbeitet, um das Problem zu definieren, das ich gefunden habe. – Rodrigo

1

gstreamer kann Webcam-Eingang verarbeiten. Wenn ich mich gut erinnere, gibt es Python-Bindungen dafür!

+1

'padsp streamer -q -c/dev/video0 -f rgb24 -F stereo -r 24 -s 1280x720 -t 00:10 -o test.avi' nimmt 10 sekunden einer HD-webkamera mit 24 fps auf und speichert sie als * test.avi *. (Beachten Sie, dass padsp nur verwendet wird, um sicherzustellen, dass Audio unter den neueren Ubuntu-Versionen erfasst wird.) – Pithikos

9

Dies sollte ein Kommentar zu @ John Montgomery gewesen, aber meine rep ich Anmerkungen zu machen nicht gestattet. Ihre Antwort ist groß, aber zumindest unter Windows, wird die Zeile fehlt

vc.release() 

vor

cv2.destroyWindow("preview") 

Ohne sie die Kamera Ressource gesperrt ist, und erfasst werden können nicht wieder vor dem Python Konsole wird getötet.

Verwandte Themen