Пример #1
0
void TLD::processImage(Mat img) {
	storeCurrentData();
	Mat grey_frame;
	cvtColor( img,grey_frame, CV_RGB2GRAY );
	currImg = grey_frame; // Store new image , right after storeCurrentData();

	if(trackerEnabled) {
		medianFlowTracker->track(prevImg, currImg, prevBB);
	}

	if(detectorEnabled && (!alternating || medianFlowTracker->trackerBB == NULL)) {
		detectorCascade->detect(grey_frame);
	}

	fuseHypotheses();
	learn();
}
Пример #2
0
void TLD::processImage(const Mat &img)
{
    storeCurrentData();
    Mat grey_frame;
    cvtColor(img, grey_frame, CV_RGB2GRAY);
    currImg = grey_frame; // Store new image , right after storeCurrentData();
	
#ifdef USE_HTLD
	memMgr->moveCurFrameToGPU(grey_frame.data, true, true);
#endif

    if(trackerEnabled)
    {
#ifndef USE_HTLD
        medianFlowTracker->track(prevImg, currImg, prevBB);
#else
		medianFlowTracker->track(prevImg, 
			                     currImg, 
								 prevBB, 
								 hTLDMaster->getTLDObject(tldObjId)->getFastTrStr());
#endif
    }

    if(detectorEnabled && (!alternating || medianFlowTracker->trackerBB == NULL))
    {
#ifndef USE_HTLD
		detectorCascade->detect(grey_frame);
#else
		detectorCascade->detect(grey_frame, 
			                    hTLDMaster->getTLDObject(tldObjId)->getFastDetStr(),
								false);
#endif
    }

    fuseHypotheses();

    learn();

}
Пример #3
0
    void TLD::processImage(cv::Mat& img) {
        if (!tracker)
        { return; }

        storeCurrentData();

        Mat grayFrame;
        cvtColor(img, grayFrame, CV_BGR2GRAY);
        currImg = grayFrame; // Store new image , right after storeCurrentData();

        if (trackerEnabled && runTracker) {
            isTrackerValid = tracker->update(img, trackerBB);

            if (!isTrackerValid)
            { runTracker = false; }
        }

        if (detectorEnabled && (!alternating || !isTrackerValid))
        { detectorCascade->detect(grayFrame); }

        fuseHypotheses(img);

        learn();
    }