/** * @file Codebook.cpp * @brief feature codebook * @author Erik Rodner * @date 02/15/2008 */ #include #include "vislearning/features/simplefeatures/Codebook.h" using namespace OBJREC; using namespace std; using namespace NICE; void Codebook::vote ( const NICE::Vector & feature, NICE::Vector & histogram, int & codebookEntry, double & weight, double & distance ) const { vote ( feature, codebookEntry, weight, distance ); histogram[codebookEntry] += weight; } void Codebook::vote ( const NICE::Vector & feature, SparseVector & votes ) const { int codebookEntry; double weight; double distance; vote ( feature, codebookEntry, weight, distance ); votes.insert ( votes.begin(), pair ( codebookEntry, weight ) ); } void Codebook::reinit ( int numCodebookEntries ) { thresholds.resize ( numCodebookEntries ); thresholds.set(0.0); informativeMeasure.resize ( numCodebookEntries ); informativeMeasure.set(0.0); classnos.resize ( numCodebookEntries ); classnos.resize(0); } void Codebook::clear () { thresholds.clear(); informativeMeasure.clear(); classnos.clear(); } void Codebook::restore ( istream & is, int format ) { is >> thresholds; is >> informativeMeasure; is >> classnos; } void Codebook::store ( ostream & os, int format ) const { os << thresholds << endl; os << informativeMeasure << endl; os << classnos << endl; } void Codebook::copy ( const Codebook *codebook ) { reinit ( codebook->thresholds.size() ); thresholds = codebook->thresholds; informativeMeasure = codebook->informativeMeasure; classnos = codebook->classnos; }