示例#1
0
        /// <summary>
        /// Instatiates a ready-to-go median flow tracker.
        /// All of its initial configuration is done here.
        /// </summary>
        private void InstantiateTracker()
        {
            // grid bounding box
            _gridBb = new MedianFlowTrackerBoundingBox
                      (
                new Size(10, 10),
                new SizeF(5, 5)
                      );

            // lucas kanade tracker
            _lkTracker = new LucasKanadeTracker(
                new Size(11, 11),
                2,
                new MCvTermCriteria(20, 0.03),
                LKFLOW_TYPE.DEFAULT,
                LKFLOW_TYPE.CV_LKFLOW_PYR_A_READY | LKFLOW_TYPE.CV_LKFLOW_PYR_B_READY
                );

            // fb error and ncc calculators
            _fbErrorCalc = Service.FBError;
            _nccCalc     = Service.NCC;

            // patch size for calculating NCC
            _patchSize = new Size(11, 11);

            // MAD treshold
            _madTrashold = 10;

            // ** instantiate the median flow tracker **
            _tracker = new MedianFlowTracker(
                _gridBb,
                _lkTracker,
                _fbErrorCalc,
                _nccCalc,
                _patchSize,
                _madTrashold
                );

            // initial frame
            _initialFrame = new Image <Gray, byte>(Path.Combine(_resourceDir, "violeta_5.jpg"));

            // initial bounding box
            _initialBB = new BoundingBox(
                new PointF(90, 81),
                new SizeF(70, 40)
                );

            // ** initialize the median flow tracker **
            _tracker.Initialize(_initialFrame, _initialBB);
        }
示例#2
0
        public MedianFlowTracker(
            IMedianFlowTrackerBoundingBox bb,
            ILucasKanadeTracker lucasKanade,
            FBError_Calculator FBError,
            NCC_Calculator NCC,
            Size patchSize,
            float madTreshold
            )
        {
            _currentBb   = bb;
            _lucasKanade = lucasKanade;
            _FBError     = FBError;
            _NCC         = NCC;
            _patchSize   = patchSize;
            _madTreshold = madTreshold;

            _failureEnabled = true;
        }