/** 
* @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::Image & result, NICE::MultiChannelImageT<double> & probabilities ); 
};


} // namespace

#endif