/** * @file HOGFeature.h * @brief histogram of oriented gradients ( dalal and triggs ) * @author Erik Rodner * @date 05/07/2008 */ #ifndef HOGFeatureINCLUDE #define HOGFeatureINCLUDE #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include "core/basics/Config.h" #include "vislearning/cbaselib/Feature.h" namespace OBJREC { /** histogram of oriented gradients ( dalal and triggs ) */ class HOGFeature : public Feature { protected: /** @{ feature parameter */ int window_size_x; int window_size_y; int bin; int cellx1; int celly1; int cellx2; int celly2; int cellcountx; int cellcounty; bool flexibleGrid; /** @} */ /** @{ parameter for feature generation */ int numScales; int numBins; double scaleStep; /** @} */ public: /** simple constructor */ HOGFeature( const NICE::Config *conf ); /** internally used by HOGFeature::explode */ HOGFeature () {}; /** simple destructor */ virtual ~HOGFeature(); double val( const Example *example ) const; void explode ( FeaturePool & featurePool, bool variableWindow = true ) const; Feature *clone() const; Feature *generateFirstParameter () const; void restore (std::istream & is, int format = 0); void store (std::ostream & os, int format = 0) const; void clear (); }; } // namespace #endif