Function:GoodFeaturesToTrack
Jump to navigation
Jump to search
Detecting interesting parts of an image is an important step in most computer vision applications. Itserves as the first low-level processing step in applications like image segmentation, object recognition, object tracking and motion estimation. CUVI offers feature detectors including KLT, Harris and Peter in a single function
Function
CuviStatus goodFeaturesToTrack(const CuviImage& src,
const CuviRect& roi,
CuviPointValue2D<Cuvi32f,Cuvi32f>*& output,
Cuvi32s& maxFeatures,
const CuviFeaturesCriteria criteria = CuviFeaturesCriteria(),
const CuviStream& stream = CuviStream()); |
Parameters
Name | Type | Description |
---|---|---|
src | const CuviImage& | Input 8 bit Gray Scale Image. |
roi | const CuviRect& | Desired region of interest of input image. The function will return features from only that region of the image |
output | CuviPointValue2D<Cuvi32f,Cuvi32f>*& | Output feature list that contains the coordinates & values of features/corners. |
maxFeatures | Cuvi32s& | Desired number of features. If the total features detected in the image or ROI are less than maxFeatures its value is updated to that number |
criteria | const CuviFeaturesCriteria | A structure containing various parameters that affect feature selection behavior |
stream | const CuviStream& | GPU stream ID for execution |
Image Type Support
Input | Output |
---|---|
8uC1 | CuviPointValue2D<Cuvi32f,Cuvi32f> |
Samples
Example
//Create an 8-bit Grays-scale CuviImage
CuviImage gpu_image = cuvi::io::loadImage(path,CUVI_LOAD_IMAGE_GRAYSCALE);
CuviPointValue2D<Cuvi32f,Cuvi32f> *features;
//Desired number of features
int featureCount = 100;
//Selecting complete image for the process
CuviRect roi(0,0,img.width(),img.height());
//Setting Feature selection parameters
CuviFeaturesCriteria criteria(CUVI_FEATURES_HARRIS_PETER,0.006f,15,3,-2.0f);
//Calling GoodFeaturesToTrack
cuvi::computerVision::goodFeaturesToTrack(gimg,roi,features,featureCount,criteria); |