/*! 
*   \file  CFST.h
*   \brief Declares class to calculate FST features.
*    
*   \details  
*   Based on 2001 paper by Oliva and Torralba.
*
*   \date      March 16, 2012
*   \copyright eBay Research Labs.
*/

#pragma once

// Include standard C++ headers.
#include <string>   

// Include openCV-specific headers.
#include <cv.h>

// Namespaces.
//using namespace std;
//using namespace cv;

class CFST
{
	public:
		CFST(const int dimBlocks[], int numScales=4, int numAngles=8);
		~CFST(void);

    void CalculateFeatures(const cv::Mat &img, cv::Mat &ftrs);

    private:
        int    m_DimBlocks[2];
        int    m_numScales;
        int    m_numAngles;

        cv::Mat    Preprocess(const cv::Mat &lum);
        cv::Mat    FeaturesForBlock(const cv::Mat &gray, int paddedDim);
};
