Пример #1
0
Файл: TLD.cs Проект: denjiz/tld
        public IBoundingBox FindObject(Image <Gray, byte> currentFrame)
        {
            IBoundingBox        trackerBoundingBox    = _useTracker ? _tracker.FindObject(currentFrame) : null;
            List <IBoundingBox> detectorBoundingBoxes = _useDetector ? _detector.FindObject(currentFrame) : null;

            bool         reinitializeTracker;
            bool         prevValid = _currentBbValid;
            bool         currValid;
            IBoundingBox output = _outputStrategy.DetermineBoundingBox(
                trackerBoundingBox,
                detectorBoundingBoxes,
                currentFrame,
                out reinitializeTracker,
                prevValid,
                out currValid
                );

            _currentBbValid = currValid;

            if (reinitializeTracker)
            {
                _tracker.Initialize(currentFrame, output);
            }
            if (_currentBbValid && _useLearner)
            {
                _learner.TrainDetector(currentFrame, output, out currValid);
                _currentBbValid = currValid;
            }

            _currentFrame = currentFrame;
            _currentBb    = output;

            return(output);
        }