added edglet feature type

This commit is contained in:
Christian Forster
2014-04-27 15:41:11 +02:00
parent 482b5c0f56
commit 669b65cbeb
+28 -15
View File
@@ -26,34 +26,47 @@ struct Feature
{ {
EIGEN_MAKE_ALIGNED_OPERATOR_NEW 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. Frame* frame; //!< Pointer to frame in which the feature was detected.
Vector2d px; //!< Coordinates in pixels on pyramid level 0. Vector2d px; //!< Coordinates in pixels on pyramid level 0.
Vector3d f; //!< Unit-bearing vector of the feature. Vector3d f; //!< Unit-bearing vector of the feature.
int level; //!< Image pyramid level where feature was extracted. int level; //!< Image pyramid level where feature was extracted.
Point* point; //!< Pointer to 3D point which corresponds to the feature. 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) Feature(Frame* _frame, const Vector2d& _px, int _level) :
: frame(_frame), type(CORNER),
px(_px), frame(_frame),
f(frame->cam_->cam2world(px)), px(_px),
level(_level), f(frame->cam_->cam2world(px)),
point(NULL) level(_level),
point(NULL),
grad(0.0,0.0)
{} {}
Feature(Frame* _frame, const Vector2d& _px, const Vector3d& _f, int _level) Feature(Frame* _frame, const Vector2d& _px, const Vector3d& _f, int _level) :
: frame(_frame), type(CORNER),
frame(_frame),
px(_px), px(_px),
f(_f), f(_f),
level(_level), level(_level),
point(NULL) point(NULL),
grad(0.0,0.0)
{} {}
Feature(Frame* _frame, Point* _point, const Vector2d& _px, const Vector3d& _f, int _level) Feature(Frame* _frame, Point* _point, const Vector2d& _px, const Vector3d& _f, int _level) :
: frame(_frame), type(CORNER),
px(_px), frame(_frame),
f(_f), px(_px),
level(_level), f(_f),
point(_point) level(_level),
point(_point),
grad(0.0,0.0)
{} {}
}; };