Difference between revisions of "Function:TrackFeatures"
From CUVI Wiki
Line 5: | Line 5: | ||
|style="font-size:150%;"| | |style="font-size:150%;"| | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
CuviStatus trackFeatures(CuviImage | CuviStatus trackFeatures(const CuviImage& previous, | ||
CuviImage | const CuviImage& next, | ||
CuviPointValue2D* inputFeatures, | CuviPointValue2D<Cuvi32f,Cuvi32f>* inputFeatures, | ||
CuviPointValue2D* | CuviPointValue2D<Cuvi32f,Cuvi32f>*& trackedFeatures, | ||
Cuvi32s featureCount, | const Cuvi32s featureCount, | ||
CuviTrackingCriteria criteria, | CuviTrackingCriteria criteria, | ||
CuviStream | const CuviStream& stream = CuviStream()); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
Line 22: | Line 22: | ||
! Description | ! Description | ||
|- | |- | ||
| | | previous | ||
| CuviImage | | const CuviImage& | ||
| The first image whose features are to be tracked | | The first image whose features are to be tracked | ||
|- | |- | ||
| | | next | ||
| CuviImage | | const CuviImage& | ||
| Second image, in which to look for features of first image | | Second image, in which to look for features of first image | ||
|- | |- | ||
| inputFeatures | | inputFeatures | ||
| CuviPointValue2D* | | CuviPointValue2D<Cuvi32f,Cuvi32f>* | ||
| Feature of first image | | Feature of first image | ||
|- | |- | ||
| trackedFeatures | | trackedFeatures | ||
| CuviPointValue2D* | | CuviPointValue2D<Cuvi32f,Cuvi32f>*& | ||
| Output feature list containing the location of tracked features from first image onto second image | | Output feature list containing the location of tracked features from first image onto second image | ||
|- | |- | ||
| featureCount | | featureCount | ||
| Cuvi32s | | const Cuvi32s | ||
| Number of features to track | | Number of features to track | ||
|- | |- | ||
Line 47: | Line 47: | ||
|- | |- | ||
| stream | | stream | ||
| CuviStream | | const CuviStream& | ||
| GPU stream ID for execution | | GPU stream ID for execution | ||
Line 85: | Line 85: | ||
//Create two 8-bit Grays-scale CuviImage objects | //Create two 8-bit Grays-scale CuviImage objects | ||
CuviImage | CuviImage gimg1 = cuvi::io::loadImage(path, CUVI_LOAD_IMAGE_GRAYSCALE); | ||
CuviImage | CuviImage gimg2 = cuvi::io::loadImage(path, CUVI_LOAD_IMAGE_GRAYSCALE); | ||
CuviPointValue2D* features1, *features2; | CuviPointValue2D* features1, *features2; | ||
//selection and tracking criteria | //selection and tracking criteria | ||
CuviFeaturesCriteria fc | CuviFeaturesCriteria fc(CUVI_FEATURES_HARRIS,0.006f,22); | ||
CuviTrackingCriteria tc | CuviTrackingCriteria tc(2,CuviSize(12,12),15,10.0f); | ||
//ROI for selection | //ROI for selection | ||
CuviRect roi(0,0,gimg1.width(),gimg1.height()); | |||
int featureCount = 50; | int featureCount = 50; | ||
//Select Features | //Select Features | ||
cuvi::computerVision::goodFeaturesToTrack(gimg1,roi, | cuvi::computerVision::goodFeaturesToTrack(gimg1,roi,features1,featureCount,fc); | ||
//Track the selected features from first frame onto second frame | //Track the selected features from first frame onto second frame | ||
cuvi::computerVision::trackFeatures(gimg1,gimg2,features1, | cuvi::computerVision::trackFeatures(gimg1,gimg2,features1,features2,featureCount,tc); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} |
Revision as of 14:50, 16 June 2014
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
|
Parameters
Name | Type | Description |
---|---|---|
previous | const CuviImage& | The first image whose features are to be tracked |
next | const CuviImage& | Second image, in which to look for features of first image |
inputFeatures | CuviPointValue2D<Cuvi32f,Cuvi32f>* | Feature of first image |
trackedFeatures | CuviPointValue2D<Cuvi32f,Cuvi32f>*& | Output feature list containing the location of tracked features from first image onto second image |
featureCount | const Cuvi32s | Number of features to track |
criteria | CuviFeaturesCriteria | A structure containing various parameters that affect feature tracking behavior |
stream | const CuviStream& | GPU stream ID for execution |
Image Type Support
Input | Output |
---|---|
8uC1 | CuviPointValue2D |
Samples
Error creating thumbnail: Unable to save thumbnail to destination |
Error creating thumbnail: Unable to save thumbnail to destination |
Example
|