소스 검색

BoW Histograms - modifications for default types and initializations

Alexander Freytag 12 년 전
부모
커밋
2a4ecdf368
2개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. 2 4
      features/simplefeatures/BoWFeatureConverter.cpp
  2. 6 0
      features/simplefeatures/CodebookPrototypes.cpp

+ 2 - 4
features/simplefeatures/BoWFeatureConverter.cpp

@@ -60,12 +60,10 @@ BoWFeatureConverter::~BoWFeatureConverter()
 void BoWFeatureConverter::calcHistogram ( const NICE::VVector & features,
           NICE::Vector & histogram , const bool & b_resetHistogram )
 {
-  if ( b_resetHistogram )
+  if ( b_resetHistogram || (histogram.size() != this->codebook->getCodebookSize() ) )
   {
     histogram.resize( this->codebook->getCodebookSize() );
     histogram.set(0);
-    
-    fprintf (stderr, "BoWFeatureConverter: number of features = %d, codebook size = %d\n", (int)features.size(), (int)codebook->getCodebookSize());    
   }
 
   int cluster_index = 0;
@@ -78,7 +76,7 @@ void BoWFeatureConverter::calcHistogram ( const NICE::VVector & features,
             featIt++ )
     {
       const NICE::Vector & x = *featIt;
-      this->codebook->vote ( x, histogram, cluster_index, weight, distance );
+      this->codebook->voteVQ ( x, cluster_index, weight, distance );
       histogram[ cluster_index ] ++;
     }    
   }

+ 6 - 0
features/simplefeatures/CodebookPrototypes.cpp

@@ -22,6 +22,8 @@ using namespace NICE;
 CodebookPrototypes::CodebookPrototypes()
 {
   this->clear();
+  this->distanceType = "euclidean";
+  this->distancefunction = GenericDistanceSelection::selectDistance(distanceType);   
 }
 
 CodebookPrototypes::CodebookPrototypes( const std::string & filename )
@@ -34,6 +36,9 @@ CodebookPrototypes::CodebookPrototypes( const NICE::VVector & vv )
   this->append ( vv, true /* _copyData*/ ); 
 
   reinit ( vv.size() );
+  
+  this->distanceType = "euclidean";
+  this->distancefunction = GenericDistanceSelection::selectDistance(distanceType);     
 }
 
 CodebookPrototypes::CodebookPrototypes( NICE::Config * _conf, const std::string & _section) : Codebook ( _conf, _section )
@@ -126,6 +131,7 @@ void CodebookPrototypes::add ( const Codebook *codebook )
 
 Codebook *CodebookPrototypes::clone () const
 {
+  //TODO !
     return (new CodebookPrototypes());
 }