예제 #1
0
 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()
예제 #2
0
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
예제 #3
0
    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