My Project
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
TrackerFeatures Class Reference

TrackerFeatures tracks features using OpenCV's cvGoodFeaturesToTrack and cvCalcOpticalFlowPyrLK More...

#include <TrackerFeatures.h>

Inheritance diagram for TrackerFeatures:
Tracker TrackerFeaturesEC

Public Member Functions

 TrackerFeatures (int _max_features=100, int _min_features=90, double _quality_level=0.01, double _min_distance=10, int _pyr_levels=1, int _win_size=3)
 
 ~TrackerFeatures ()
 Destructor.
 
void ChangeSettings (int _max_features=100, int _min_features=90, double _quality_level=0.01, double _min_distance=10)
 Change settings while running.
 
void Reset ()
 Reset.
 
double Reset (const cv::Mat &img, cv::Mat &mask)
 Reset track features on specified mask area.
 
bool DelFeature (int index)
 Stop tracking the identified feature (with index for features array)
 
bool DelFeatureId (int id)
 Stop tracking the identified feature (with feature id)
 
double Track (cv::Mat &img)
 Track features.
 
double Track (cv::Mat &img, bool add_features)
 Track features.
 
double Track (cv::Mat &img, cv::Mat &mask)
 Track features.
 
int AddFeatures (cv::Mat &mask)
 add features to the previously tracked frame if there are less than min_features
 
cv::Mat NewFeatureMask ()
 Create and get the pointer to new_features_mask.
 
int Purge ()
 Purge features that are considerably closer than the defined min_distance. More...
 
- Public Member Functions inherited from Tracker
virtual void Compensate (double *x, double *y)
 

Public Attributes

std::vector< cv::Point2f > prev_features
 Track result: previous features
 
std::vector< cv::Point2f > features
 Track result: current features
 
int prev_feature_count
 Track result: count of previous features
 
int feature_count
 Track result: count of current features
 
int * prev_ids
 Track result: ID:s for previous features
 
int * ids
 Track result: ID:s for current features
 

Protected Member Functions

double TrackHid (const cv::Mat &img, cv::Mat &mask, bool add_features=true)
 Reset track features on specified mask area.
 

Protected Attributes

int x_res
 
int y_res
 
int frame_count
 
double quality_level
 
double min_distance
 
int min_features
 
int max_features
 
cv::Mat status
 
cv::Mat img_eig
 
cv::Mat img_tmp
 
cv::Mat gray
 
cv::Mat prev_gray
 
cv::Mat pyramid
 
cv::Mat prev_pyramid
 
cv::Mat mask
 
int next_id
 
int win_size
 
int pyr_levels
 

Detailed Description

TrackerFeatures tracks features using OpenCV's cvGoodFeaturesToTrack and cvCalcOpticalFlowPyrLK

Definition at line 40 of file TrackerFeatures.h.

Constructor & Destructor Documentation

◆ TrackerFeatures()

TrackerFeatures ( int  _max_features = 100,
int  _min_features = 90,
double  _quality_level = 0.01,
double  _min_distance = 10,
int  _pyr_levels = 1,
int  _win_size = 3 
)
\brief Constructor for \e TrackerFeatures tracks features using OpenCV's cvGoodFeaturesToTrack and cvCalcOpticalFlowPyrLK
\param _max_features The maximum amount of features to be tracked
\param _min_features The minimum amount of features. The featureset is filled up when the number of features is lower than this.
\param _quality_level Multiplier for the maxmin eigenvalue; specifies minimal accepted quality of image corners.
\param _min_distance Limit, specifying minimum possible distance between returned corners; Euclidian distance is used. 
        If 0 given we use default value aiming for uniform cover: _min_distance = 0.8*sqrt(x_res*y_res/max_features))
Parameters
_pyr_levelsNumber of pyramid levels

Member Function Documentation

◆ Purge()

int Purge ( )

Purge features that are considerably closer than the defined min_distance.

Note, that we always try to maintain the smaller id's assuming that they are older ones


The documentation for this class was generated from the following file: