/**
 * @file LocalFeatureOpponnentSift.h
 * @brief local feature with color sift
 * @author Björn Fröhlich
 * @date 03/08/2010

 */
#ifndef LocalFeatureOpponnentSiftINCLUDE
#define LocalFeatureOpponnentSiftINCLUDE

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

#include "core/basics/Config.h"
#include "vislearning/features/localfeatures/LocalFeatureRGBSift.h"


namespace OBJREC
{
/** local feature with sift */

class LocalFeatureOpponnentSift : public LocalFeatureRGBSift
{

  protected:
    int octaves;
    int levels;
    bool normalizeFeature;
    int first_octave;
    double magnif;

  public:

    /** simple constructor */
    LocalFeatureOpponnentSift ( const NICE::Config *conf );

    /** simple destructor */

    virtual ~LocalFeatureOpponnentSift();

    /**
     * get the descriptor
     * @param img input image
     * @param positions positions for the SIFT features
     * @param descriptors output
     * @return 0
     */
    int getDescriptors ( const NICE::ColorImage & cimg, NICE::VVector & positions, NICE::VVector & descriptors ) const;
};


} // namespace

#endif
