Function:TrackFeatures

From CUVI Wiki
Revision as of 07:10, 26 April 2012 by Jawad (talk | contribs) (Created page with "__NOTOC__ CUVI Feature tracker tracks input features from frame 1 onto frame 2. The function is ideal for tracking selected number of features through an image sequence or a v...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

CUVI Feature tracker tracks input features from frame 1 onto frame 2. The function is ideal for tracking selected number of features through an image sequence or a video stream. This is a custom algorithm and does not use optical flows to estimate motion. Check out Motion Estimate section for more details on Optical Flow based motion tracking.

Function

CuviStatus trackFeatures(CuviImage* previousImage,
                         CuviImage* nextImage,
                         CuviPointValue2D* inputFeatures,
                         CuviPointValue2D** trackedFeatures,
                         Cuvi32s featureCount,
                         CuviTrackingCriteria criteria,
                         CuviStream* stream = NULL);

Parameters

Name Type Description
previousImage CuviImage* The first image whose features are to be tracked
nextImage CuviImage* Second image, in which to look for features of first image
inputFeatures CuviPointValue2D* Feature of first image
trackedFeatures CuviPointValue2D** Output feature list containing the location of tracked features from first image onto second image
featureCount Cuvi32s Number of features to track
criteria CuviFeaturesCriteria A structure containing various parameters that affect feature tracking behavior
stream CuviStream* GPU stream ID for execution


Image Type Support

Input Output
8uC1 CuviPointValue2D


Samples

Frame0.jpg
Frame1.jpg


Example

//Create an 8-bit Grays-scale CuviImage
CuviImage *gpu_image = new CuviImage(size,img->depth,img->nChannels);

//Populate the Image
gpu_image->upload(img->imageData,img->widthStep);

CuviPointValue2D *features;

//Desired number of features
int featureCount = 100;

//Selecting complete image for the process
CuviROI roi = cuviROI(0,0,img->width,img->height);

//Setting Feature selection parameters
CuviFeaturesCriteria criteria = cuviFeaturesCriteria(CUVI_FEATURES_HARRIS_PETER,0.006f,15,3,-2.0f);

//Calling GoodFeaturesToTrack
cuvi::computerVision::goodFeaturesToTrack(&gimg,roi,&features,&featureCount,criteria);