/** 
* @file HOGVectorFeatures.h
* @brief extract hog features
* @author Alexander Arest
* @date 06/08/2009

*/
#ifndef HOGVECTORFEATURESINCLUDE
#define HOGVECTORFEATURESINCLUDE

#include "core/vector/VectorT.h"
#include "core/vector/MatrixT.h"
#include "core/image/ImageT.h"
#include "core/imagedisplay/ImageDisplay.h"

#include "vislearning/features/fbase/FeatureFactory.h"
#include "vislearning/baselib/FastFilter.h"

namespace OBJREC {

/** extract simple greyvalue features */
class HOGVectorFeatures : public FeatureFactory
{

    protected:
    
	/** @{ feature parameter */

	int numBins;
	bool usesigned;	

	int amount_cell_x; // Amount of cells in x-Axis
	int amount_cell_y; // Amount of cells in y-Axis
	int block_x;
	int block_y;

	/** @} */

    public:
  
	/** simple constructor */
	HOGVectorFeatures ( const NICE::Config *conf, int _xsize = -1, int _ysize = -1);
      
	/** simple destructor */
	virtual ~HOGVectorFeatures ();
    
	/** convert image into hog feature vector */
	int convert ( const NICE::Image & img, NICE::Vector & vec );
};

} //namespace

#endif
