/**
* @file PSSImageLevelPrior.h
* @brief incorporate prior from image categorization method
* @author Erik Rodner
* @date 03/19/2009

*/
#ifndef PSSIMAGELEVELPRIORINCLUDE
#define PSSIMAGELEVELPRIORINCLUDE

#include "PostSemSeg.h"
#include "vislearning/math/mathbase/FullVector.h"


namespace OBJREC
{

/** incorporate prior from image categorization method */
class PSSImageLevelPrior : public PostSemSeg
{

  protected:
    int imagePriorMethod;
    FullVector prior;

    int priorK;
    double alphaImagePrior;

  public:

    enum
    {
      IMAGE_PRIOR_BEST_K = 0,
      IMAGE_PRIOR_PSEUDOPROB
    };

    /** simple constructor */
    PSSImageLevelPrior ( int imagePriorMethod, int priorK, double alphaImagePrior );

    /** simple destructor */
    virtual ~PSSImageLevelPrior();

    void setPrior ( FullVector & prior );

    void postprocess ( NICE::ImageT<int> & result, NICE::MultiChannelImageT<double> & probabilities );
};


} // namespace

#endif