Webcam avec delai

De Wikilipo
Révision datée du 23 mars 2010 à 09:10 par Andreas (discussion | contributions) (Page créée avec « Ce programme capture les images de la webcam, les garde en mémoire et les montre avec un délai. Si le délai est long, il occupe beaucoup de mémoire. <pre> import cv, ti… »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Ce programme capture les images de la webcam, les garde en mémoire et les montre avec un délai. Si le délai est long, il occupe beaucoup de mémoire.

import cv, time

class DelayCam:

    def __init__(self):
        self.capture = cv.CaptureFromCAM(0)
        self.history = []
        cv.NamedWindow( "DelayCam", 0 )

        print( "ESC - quit the program\n")

    def run(self):
        lastsec = time.time()
        nbframes = 0
        while True:
            nbframes +=1
            now = time.time()
            #count frames per second
            if now-lastsec>1:
                print "%i frames" % nbframes
                lastsec = now
                nbframes =0
            frame = cv.QueryFrame( self.capture )
            self.history.insert(0,cv.CloneImage(frame))
            if len(self.history)>25 *2:
                frame = self.history.pop()
                cv.ShowImage( "DelayCam", frame )
                
            if cv.WaitKey(7) == 27:
                break

if __name__=="__main__":
    demo = DelayCam()
    demo.run()