/** * @file FTransform.h * @brief FTransform Class Definition * @author Michael Koch * @date 08/19/2008 */ #ifndef FTRANSFORMINCLUDE #define FTRANSFORMINCLUDE #include "core/vector/VectorT.h" #include "core/vector/MatrixT.h" #include "core/basics/Persistent.h" namespace OBJREC { /** Abstract class for feature transformations */ class FTransform: public NICE::Persistent { protected: public: /** simple constructor */ FTransform(); /** simple destructor */ virtual ~FTransform(); /** * Whitening of a dataset * @param features feature Matrix * @param whitefeatures feature Matrix after whitening * @param whitefeatures feature NICE::Matrix after whitening */ void whitening(const NICE::Matrix &features,NICE::Matrix &whitefeatures); /** * get Basis Vectors of FTransform * @param features Input Features * @param dimension Dimension size / number of principal components * @return Basis Vectors */ virtual void calculateBasis(const NICE::Matrix &features,const uint targetDimension=10,const uint mode=0)=0; /** * Features of FTransform Space * @param basis Base coefficients * @param data input data * @return Features as Vector */ virtual NICE::Vector getFeatureVector(const NICE::Vector &data,const bool normalize=true)=0; }; } // namespace #endif