10#ifndef mrpt_vision_tracking_H
11#define mrpt_vision_tracking_H
114 inline CGenericFeatureTracker() : m_timlog(false), m_update_patches_counter(0),m_check_KLT_counter(0),m_detector_adaptive_thres(10)
147 out_featureList = in_featureList;
149 out_featureList.
begin(),out_featureList.
end(),
151 this->trackFeatures(old_img, new_img, out_featureList);
193 const size_t nNewlyDetectedFeats,
194 const size_t desired_num_features);
201 template <
typename FEATLIST>
205 FEATLIST &inout_featureList );
241 template <
typename FEATLIST>
245 FEATLIST &inout_featureList );
262 unsigned int numberOfSigmas );
A class for storing images as grayscale or RGB bitmaps.
A versatile "profiler" that logs the time spent within each pair of calls to enter(X)-leave(X),...
A list of visual features, to be used as output by detectors, as input/output by trackers,...
void VISION_IMPEXP checkTrackedFeatures(CFeatureList &leftList, CFeatureList &rightList, vision::TMatchingOptions options)
Search for correspondences which are not in the same row and deletes them ...
void VISION_IMPEXP filterBadCorrsByDistance(mrpt::utils::TMatchingPairList &list, unsigned int numberOfSigmas)
Filter bad correspondences by distance ...
std::auto_ptr< CGenericFeatureTracker > CGenericFeatureTrackerAutoPtr
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
For usage when passing a dynamic number of (numeric) arguments to a function, by name.
Track a set of features from old_img -> new_img using sparse optimal flow (classic KL method).
virtual void trackFeatures_impl(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, TSimpleFeaturefList &inout_featureList) MRPT_OVERRIDE
The tracking method implementation, to be implemented in children classes.
void trackFeatures_impl_templ(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, FEATLIST &inout_featureList)
virtual void trackFeatures_impl(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, TSimpleFeatureList &inout_featureList) MRPT_OVERRIDE
The tracking method implementation, to be implemented in children classes.
CFeatureTracker_KL()
Default ctor.
virtual void trackFeatures_impl(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, vision::CFeatureList &inout_featureList) MRPT_OVERRIDE
This version falls back to the version with TSimpleFeatureList if the derived class does not implemen...
CFeatureTracker_KL(mrpt::utils::TParametersDouble extraParams)
Ctor with extra parameters.
A virtual interface for all feature trackers, implementing the part of feature tracking that is commo...
virtual void trackFeatures_impl(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, TSimpleFeatureList &inout_featureList)=0
The tracking method implementation, to be implemented in children classes.
mrpt::utils::TParametersDouble extra_params
Optional list of extra parameters to the algorithm.
int m_detector_adaptive_thres
For use in "add_new_features" == true.
size_t m_check_KLT_counter
For use when "check_KLT_response_every">=1.
void trackFeatures(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, CFeatureList &inout_featureList)
void trackFeaturesNewList(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, const vision::CFeatureList &in_featureList, vision::CFeatureList &out_featureList)
A wrapper around the basic trackFeatures() method, but keeping the original list of features unmodifi...
void internal_trackFeatures(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, FEATLIST &inout_featureList)
virtual void trackFeatures_impl(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, TSimpleFeaturefList &inout_featureList)
The tracking method implementation, to be implemented in children classes.
void trackFeatures(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, TSimpleFeaturefList &inout_featureList)
TExtraOutputInfo last_execution_extra_info
Updated with each call to trackFeatures()
void trackFeatures(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, TSimpleFeatureList &inout_featureList)
Perform feature tracking from "old_img" to "new_img", with a (possibly empty) list of previously trac...
mrpt::utils::CTimeLogger & getProfiler()
Returns a reference to the internal time logger.
void updateAdaptiveNewFeatsThreshold(const size_t nNewlyDetectedFeats, const size_t desired_num_features)
Adapts the threshold m_detector_adaptive_thres according to the real and desired number of features j...
CGenericFeatureTracker()
Default ctor.
mrpt::vision::TSimpleFeatureList m_newly_detected_feats
This field is clared by trackFeatures() before calling trackFeatures_impl(), and can be filled out wi...
void enableTimeLogger(bool enable=true)
Returns a read-only reference to the internal time logger.
virtual ~CGenericFeatureTracker()
Dtor.
virtual void trackFeatures_impl(const mrpt::utils::CImage &old_img, const mrpt::utils::CImage &new_img, CFeatureList &inout_featureList)=0
This version falls back to the version with TSimpleFeatureList if the derived class does not implemen...
size_t m_update_patches_counter
for use when "update_patches_every">=1
const mrpt::utils::CTimeLogger & getProfiler() const
Returns a read-only reference to the internal time logger.
int getDetectorAdaptiveThreshold() const
Returns the current adaptive threshold used by the FAST(ER) detector to find out new features in empt...
CGenericFeatureTracker(mrpt::utils::TParametersDouble extraParams)
Ctor with extra parameters.
mrpt::utils::CTimeLogger m_timlog
the internal time logger, disabled by default.
A structure containing options for the matching.