From 669b65cbebfe628835dbc4424844145cc88c74a8 Mon Sep 17 00:00:00 2001 From: Christian Forster Date: Sun, 27 Apr 2014 15:41:11 +0200 Subject: [PATCH] added edglet feature type --- svo/include/svo/feature.h | 43 +++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/svo/include/svo/feature.h b/svo/include/svo/feature.h index a0a30f4..142d232 100644 --- a/svo/include/svo/feature.h +++ b/svo/include/svo/feature.h @@ -26,34 +26,47 @@ struct Feature { EIGEN_MAKE_ALIGNED_OPERATOR_NEW + enum FeatureType { + CORNER, + EDGELET + }; + + FeatureType type; //!< Type can be corner or edgelet. Frame* frame; //!< Pointer to frame in which the feature was detected. Vector2d px; //!< Coordinates in pixels on pyramid level 0. Vector3d f; //!< Unit-bearing vector of the feature. int level; //!< Image pyramid level where feature was extracted. Point* point; //!< Pointer to 3D point which corresponds to the feature. + Vector2d grad; //!< Dominant gradient direction for edglets, normalized. - Feature(Frame* _frame, const Vector2d& _px, int _level) - : frame(_frame), - px(_px), - f(frame->cam_->cam2world(px)), - level(_level), - point(NULL) + Feature(Frame* _frame, const Vector2d& _px, int _level) : + type(CORNER), + frame(_frame), + px(_px), + f(frame->cam_->cam2world(px)), + level(_level), + point(NULL), + grad(0.0,0.0) {} - Feature(Frame* _frame, const Vector2d& _px, const Vector3d& _f, int _level) - : frame(_frame), + Feature(Frame* _frame, const Vector2d& _px, const Vector3d& _f, int _level) : + type(CORNER), + frame(_frame), px(_px), f(_f), level(_level), - point(NULL) + point(NULL), + grad(0.0,0.0) {} - Feature(Frame* _frame, Point* _point, const Vector2d& _px, const Vector3d& _f, int _level) - : frame(_frame), - px(_px), - f(_f), - level(_level), - point(_point) + Feature(Frame* _frame, Point* _point, const Vector2d& _px, const Vector3d& _f, int _level) : + type(CORNER), + frame(_frame), + px(_px), + f(_f), + level(_level), + point(_point), + grad(0.0,0.0) {} };