/** 
 * @file FCSet.h
 * @brief extract fourier domain value
 * @author Michael Koch
 * @date 5/27/2008

 */
#ifndef FCSetINCLUDE
#define FCSetINCLUDE

#include "core/vector/VectorT.h"
#include "core/vector/MatrixT.h"

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


namespace OBJREC {

/** combining features by vector concatenation */
class FCSet : public FeatureFactory
{

     protected:
    
          enum {
               NORMALIZE_N01 = 0,
               NORMALIZE_NONE,
               NORMALIZE_STDDEV,
               NORMALIZE_MEAN
          };

          int xsize;
          int ysize;
          int normalization;

          // refactor-nice.pl: check this substitution
          // old: Image tmp;
          NICE::Image tmp;
          
          std::vector<FeatureFactory * > featurefactoryvector;
          
          
     public:
          
          
          FCSet ( const NICE::Config *conf, int _xsize = -1, int _ysize = -1);
      
          virtual ~FCSet();
    
          void add(FeatureFactory *ff);
          
          // refactor-nice.pl: check this substitution
          // old: int convert ( const Image & img, Vector & vec );
          int convert ( const NICE::Image & img, NICE::Vector & vec );
};


} // namespace

#endif
