Webcam avec delai

De Wikilipo
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()