def __init__(self, id): super(CVCapture, self).__init__() self.cam = opencv.cvCreateCameraCapture(id) self.stop_event = threading.Event() self.scFrameGrabbedEvent = ThreadsafeEvent() self.cvFrameGrabbedEvent = ThreadsafeEvent() self.grabFrame()
class CVCapture(threading.Thread): def __init__(self, id): super(CVCapture, self).__init__() self.cam = opencv.cvCreateCameraCapture(id) self.stop_event = threading.Event() self.scFrameGrabbedEvent = ThreadsafeEvent() self.cvFrameGrabbedEvent = ThreadsafeEvent() self.grabFrame() def grabFrame(self): opencv.cvGrabFrame(self.cam) self.cvframe = opencv.cvRetrieveFrame(self.cam) self.scframe = self.cvframe.as_numpy_array() if logger.isEnabledFor(logging.DEBUG): logger.debug("Frame grabbed ...") def run(self): while not self.stop_event.isSet(): self.grabFrame() try: self.cvFrameGrabbedEvent.dispatch(self.cvframe) except RuntimeError, err: print err try: self.scFrameGrabbedEvent.dispatch(self.scframe) except RuntimeError, err: print err
def __init__(self, wname = "Empty", poll = True): super(CVWindow, self).__init__() self.wname = wname self.cvMouseSelectionEvent = ThreadsafeEvent() self.scMouseSelectionEvent = ThreadsafeEvent() self.rlock = threading.Lock() self.poll = poll opencv.cvNamedWindow(wname) def mouse_callback(event, posx, posy, flag, param): try: self.__mouse_callback__(event, posx, posy, flag, param) except RuntimeError, err: pass