示例#1
0
class Camera()
    running = True

    def __init__(self,fps=24):
        self.emitter = EventEmitter()
        self.fps = fps
        self.cap = cv2.VideoCapture(0)
        self.thread = threading.Thread(target=self.run)
        self.thread.daemon = True
        self.thread.start()

    def run(self):
        capturePeriodSecs = 1.0 / self.fps
        while self.Running == True:
            try:
                self.cap_frame()
            except Exception as error:
                print ("error with capturing frames: ", error)
            time.sleep(capturePeriodSecs)

    def onNewFrame(self,callback):
        self.emitter.on('frame', callback)

    def removeOnNewFrameListener(self,callback):
        self.emitter.remove_emitter_listener('frame', callback)


    def stop(self):
        self.running = False


    def cap_frame(self):
        f,img = self.cap.read()
        self.latest_frame = img
        self.emitter.emit('frame', img)