示例#1
0
文件: tracker.py 项目: vsimonis/worm3
    def __init__(self, method, src):
        self.color = True
        self.motorsOn = False

        ### Sensitivity of tracker params
        self._sampleFreq = 0.1  #in sec

        ### Set Camera params
        #self.resolution = (640, 480 )
        self.resolution = (1280, 960)
        source = {
            0: 0,
            1: 1,
            2: 'led_move1.avi',
            3: 'screencast.avi',
            4: 'screencast 1.avi',
            5: 'shortNoBox.avi',
            6: 'longNoBox.avi',
            7: 'H299.avi',
            8: 'testRec.avi',
            9: 'longDemo.avi'
        }
        self.captureSource = source[int(src)]

        ### Timing initialization
        self._startTime = time.time()
        self._lastCheck = self._startTime - self._sampleFreq

        ### Display params
        self.mirroredPreview = False

        ### Initialize Objects

        ##### Windows

        self._rawWindow = WindowManager('RawFeed', self.onKeypress)

        ### Capture -- resolution set here
        self._cap = CaptureManager(cv2.VideoCapture(self.captureSource),
                                   self._rawWindow, self.mirroredPreview,
                                   self.resolution)

        actualCols, actualRows = self._cap.getResolution()
        self.centerPt = utils.Point(actualCols / 2, actualRows / 2)

        ## from here on out use this resolution
        boundCols = 600
        boundRows = 600
        ### Arguments for finder
        # --> Pairs are always COLS, ROWS !!!!!!!
        self.finderArgs = {
            'method': method,
            'gsize': 45,
            'gsig': 9,
            'window': 3,
            'MAXONEFRAME': 500,
            'REFPING': 600000,
            'MAXREF': 1000,
            'captureSize': utils.Rect(actualCols, actualRows, self.centerPt),
            'cropRegion': utils.Rect(100, 100, self.centerPt),
            'decisionBoundary': utils.Rect(boundCols, boundRows,
                                           self.centerPt),
            'color': self.color,
            'motorsOn': self.motorsOn
        }

        self._wormFinder = WormFinder(**self.finderArgs)

        ##### Debugging
        #        self._gaussianWindow = WindowManager('Gaussian', self.onKeypress)
        self._overlayWindow = WindowManager('Overlay', self.onKeypress)