Webcam avec delai

De Wikilipo.

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

Outils personnels