/** 
* @file ClassificationResult.cpp
* @brief classification result, what else?
* @author Erik Rodner
* @date 02/13/2008

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

#include <iostream>

#include "vislearning/cbaselib/ClassificationResult.h"

using namespace OBJREC;

using namespace std;
using namespace NICE;



ClassificationResult::ClassificationResult( int _rejection_status, int maxClassNo ) : scores(maxClassNo+1)
{
    rejection_status = _rejection_status;
    classno = -1;
    classno_groundtruth = -1;
    classname = "rejected";
	uncertainty = 0.0;
}

ClassificationResult::ClassificationResult( int _classno, double _score, int maxClassNo ) : scores(maxClassNo+1)
{
    rejection_status = REJECTION_NONE;
    classno = _classno;
    scores[classno] = _score;
    classname = "unknown";
    classno_groundtruth = -1;
	uncertainty = 0.0;
}

ClassificationResult::ClassificationResult( int _classno, const FullVector & _scores )
{
    rejection_status = REJECTION_NONE;
    classno = _classno;
    scores = _scores;
    classname = "unknown";
    classno_groundtruth = -1;
	uncertainty = 0.0;
}

ClassificationResult::~ClassificationResult()
{
}

double ClassificationResult::confidence () const
{
    return scores.get(classno);
}
	
bool ClassificationResult::ok () const
{
    return ( rejection_status == REJECTION_NONE );
}