2011-04-08 4 views
3

J'ai écrit un script simple pour capturer en continu des instantanés depuis ma webcam. Mon seul problème est le module de capture vidéo ne saisit pas toujours une image qui à son tour bloque le programme. Je pense que je pourrais résoudre cela en utilisant une boucle infinie, mais je ne suis pas certain de la façon de s'y prendre. Voici le script:boucle de capture vidéo python

from VideoCapture import Device 
import datetime 
def capt(): 
    a = datetime.datetime.now().strftime("%Y%m%dT%H%M%S%ms") 

    b = str(a) 
    cam = Device(devnum=0) 
    cam.setResolution(1280, 960) 

    cam.saveSnapshot('%s.png' % (b)) 

for i in range(1, 100000): 
    capt() 

Répondre

4

Essayez d'utiliser cam.getImage au lieu de cam.saveSnapshot. cam.getImage renvoie l'image PIL, ce qui vous permet de déterminer si une image a été capturée ou non. Le code suivant n'a pas été testé:

from VideoCapture import Device 
import datetime 
def capt(): 
    a = datetime.datetime.now().strftime("%Y%m%dT%H%M%S%ms") 

    b = str(a) 
    cam = Device(devnum=0) 
    cam.setResolution(1280, 960) 

    return cam.getImage(), b 

while True: 
    im, b = capt() 
    if im: 
    break 
im.save('%s.png' % (b), 'JPEG') 
+0

A travaillé super. Merci! – Blomkvist