2009-03-03 23 views
49

Vorrei accedere alla mia webcam da Python.Come accedere alla mia webcam in Python?

Ho provato ad utilizzare il VideoCapture estensione (tutorial), ma che non ha funzionato molto bene per me, ho dovuto risolvere alcuni problemi come ad esempio è un po 'lento con le risoluzioni> 320x230, ed a volte restituisce None per nessun ragione apparente

C'è un modo migliore per accedere alla mia webcam da Python?

+0

Si prega di chiarire quali sistemi operativi è necessario supportare. –

+0

Vedere anche: [libreria Python per l'acquisizione di immagini della fotocamera] (http://softwarerecs.stackexchange.com/q/18134/1834) –

+0

E: [Perché le immagini della webcam sono state acquisite con Python così scuro?] (Http: // StackOverflow .com/q/28566972/562769) –

risposta

40

OpenCV supporta la ricezione di dati da una webcam e, di default, con i wrapper Python, è necessario installare anche numpy per l'estensione OpenCV Python (chiamata cv2) per funzionare.
Al momento della scrittura (gennaio 2015) non esiste ancora il supporto per Python 3, quindi è necessario utilizzare Python 2.

More information on using OpenCV with Python.

Un esempio copiato da 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

C'è il supporto per Python 3 se si installa dalla ruota. Ho usato questo tutorial con successo: https://www.solarianprogrammer.com/2016/09/17/install-opencv-3-with-python-3-on-windows/ –

-2

L'unico che ho usato è VideoCapture, che hai già accennato non ti piace (anche se ho avuto problemi con esso; ciò bug avete incontrato?)

non sono riuscito a trovare qualsiasi alternativa nel passato o ora, quindi potresti essere bloccato usando VideoCapture, o trovando una bella libreria C e scrivendo un wrapper Python per esso (che potrebbe essere più lavoro di quello che sei disposto a inserire in esso).

+1

Ok, ho modificato la domanda per definire il problema riscontrato. – Rodrigo

1

gstreamer può gestire l'ingresso della webcam. Se ricordo bene, ci sono i collegamenti Python per questo!

+1

'padsp streamer -q -c/dev/video0 -f rgb24 -F stereo -r 24 -s 1280x720 -t 00:10 -o test.avi' registra 10 secondi di una webcam HD con 24 fps e lo salva come * * test.avi. (Si noti che il padsp è usato solo per assicurare che l'audio venga catturato nelle versioni più recenti di Ubuntu.) – Pithikos

9

Questo avrebbe dovuto essere un commento a @ John Montgomery, ma il mio rappresentante non mi permette di fare commenti. La tua risposta è grande, ma almeno su Windows, manca la linea

vc.release() 

prima

cv2.destroyWindow("preview") 

Senza di essa, la risorsa fotocamera è bloccato e non può essere catturato di nuovo davanti al pitone la console viene uccisa.

Problemi correlati