/** * @file SparseVectorFeature.h * @brief feature class to use in Examples stored sparse features * @author Björn Fröhlich * @date 05/25/2009 */ #ifndef SparseVectorFeatureINCLUDE #define SparseVectorFeatureINCLUDE #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include "core/image/ImageT.h" #include "core/imagedisplay/ImageDisplay.h" #include "core/basics/Config.h" #include "vislearning/cbaselib/Feature.h" #include "core/vector/SparseVectorT.h" namespace OBJREC { class SparseVectorFeature : public Feature { protected: //! feature dimension int dimension; //! index of the feature int feature_index; public: /** * internally used by SparseVectorFeature::explode * @param _dimension new dimension * @param _feature_index new featureindex */ SparseVectorFeature ( int _dimension, int _feature_index = 0 ) { dimension = _dimension; feature_index = _feature_index; }; /** * simple destructor */ virtual ~SparseVectorFeature(); /** * returns the value of the sparse feature stored in example * @param example input example * @return feature value */ double val( const Example *example ) const; /** * creates for each feature a own SparseVectorFeature in featurepool * @param featurePool the feature pool * @param variableWindow */ void explode ( FeaturePool & featurePool, bool variableWindow = true ) const; Feature *clone() const; Feature *generateFirstParameter () const; /** * store the data * @param is input stream * @param format */ void restore (std::istream & is, int format = 0); /** * read the data * @param os * @param format */ void store (std::ostream & os, int format = 0) const; /** * does nothing */ void clear (); /** * returns the feature index and the dimension * @param feature_index * @param dimension */ void getStump ( int & feature_index, int & dimension ) const; }; } // namespace #endif