Selaa lähdekoodia

moved LFColorWeijer to LocalFeatureColorWeijer, added it to GenericLocalFeatureSelection

Alexander Freytag 11 vuotta sitten
vanhempi
commit
54382a53d7

+ 8 - 3
features/localfeatures/GenericLocalFeatureSelection.h

@@ -13,6 +13,7 @@
 // color-descriptor
 #include "vislearning/features/localfeatures/LocalFeatureRGBSift.h"
 #include "vislearning/features/localfeatures/LocalFeatureOpponnentSift.h"
+#include "vislearning/features/localfeatures/LocalFeatureColorWeijer.h"
 // non-color-descriptor
 #include "vislearning/features/localfeatures/LocalFeatureSift.h"
 
@@ -46,16 +47,20 @@ class GenericLocalFeatureSelection
       // Extern implementations can be added without NICE_* in this selection-class.
       if ( localfeature_type == "NICE_SIFT" )
       {
-        lf = new LocalFeatureSift ( conf );
+        lf = new OBJREC::LocalFeatureSift ( conf );
       }
       else if ( localfeature_type == "NICE_RGBSIFT" )
       {
-        lf = new LocalFeatureRGBSift ( conf );
+        lf = new OBJREC::LocalFeatureRGBSift ( conf );
       }
       else if ( localfeature_type == "NICE_OPPSIFT" )
       {
-        lf = new LocalFeatureOpponnentSift ( conf );
+        lf = new OBJREC::LocalFeatureOpponnentSift ( conf );
       }
+      else if ( localfeature_type == "colornames" )
+      {
+        lf = new OBJREC::LocalFeatureColorWeijer ( conf );
+      }      
 
       // no correct localfeature_type was given
       if ( lf == NULL )

+ 20 - 17
features/localfeatures/LFColorWeijer.cpp → features/localfeatures/LocalFeatureColorWeijer.cpp

@@ -1,10 +1,14 @@
-#include "vislearning/features/localfeatures/LFColorWeijer.h"
-
+// STL includes
 #include <fstream>
 #include <iostream>
 #include <exception>
+
+// nice-vislearning includes
 #include "vislearning/baselib/ColorSpace.h"
 
+#include "vislearning/features/localfeatures/LocalFeatureColorWeijer.h"
+
+
 using namespace OBJREC;
 
 using namespace std;
@@ -28,23 +32,23 @@ const int colors[11][3] =
 };
 
 
-LFColorWeijer::LFColorWeijer( const Config *c )
+LocalFeatureColorWeijer::LocalFeatureColorWeijer( const Config *c )
 {
   conf = c;
-  tfile = conf->gS( "LFColorWeijer", "table", "/home/dbv/bilder/colorWeijer/w2c.txt");
+  tfile = conf->gS( "LocalFeatureColorWeijer", "table", "/home/dbv/bilder/colorWeijer/w2c.txt");
   restore();
 }
 
-LFColorWeijer::~LFColorWeijer()
+LocalFeatureColorWeijer::~LocalFeatureColorWeijer()
 {
 }
 
-int LFColorWeijer::getDescSize() const
+int LocalFeatureColorWeijer::getDescSize() const
 {
   return LASTCOLOR;
 }
 
-void LFColorWeijer::restore()
+void LocalFeatureColorWeijer::restore()
 {
   ifstream fin( tfile.c_str() );
   if(!fin.is_open())
@@ -85,13 +89,12 @@ void LFColorWeijer::restore()
   }  */
 }
 
-int LFColorWeijer::getDescriptors( const NICE::Image & img, VVector & positions, VVector & features ) const
+int LocalFeatureColorWeijer::getDescriptors( const NICE::Image & img, VVector & positions, VVector & features ) const
 {
-  cerr << "this are COLOR Features, they won't work on gray value images" << endl;
-  exit( -1 );
+  throw NICE::Exception ( "LocalFeatureColorWeijer extracts COLOR Features, it won't work on gray value images");
 }
 
-int LFColorWeijer::getDescriptors( const NICE::ColorImage & img, VVector & positions, VVector & features ) const
+int LocalFeatureColorWeijer::getDescriptors( const NICE::ColorImage & img, VVector & positions, VVector & features ) const
 {
   int width = ( int )img.width();
   int height = ( int )img.height();
@@ -115,12 +118,12 @@ int LFColorWeijer::getDescriptors( const NICE::ColorImage & img, VVector & posit
   return 1;
 }
 
-void LFColorWeijer::visualizeFeatures( NICE::Image & mark, const VVector & positions, size_t color ) const
+void LocalFeatureColorWeijer::visualizeFeatures( NICE::Image & mark, const VVector & positions, size_t color ) const
 {
 
 }
 
-int LFColorWeijer::findColor( string &fn )
+int LocalFeatureColorWeijer::findColor( string &fn )
 {
   if ( fn.find( "black" ) != string::npos )
     return BLACK;
@@ -148,7 +151,7 @@ int LFColorWeijer::findColor( string &fn )
   return -1;
 }
 
-void LFColorWeijer::visualizeFeatures( NICE::ColorImage & out, const VVector & features, const VVector & position ) const
+void LocalFeatureColorWeijer::visualizeFeatures( NICE::ColorImage & out, const VVector & features, const VVector & position ) const
 {
   for ( int i = 0; i < ( int )position.size(); i++ )
   {
@@ -167,13 +170,13 @@ void LFColorWeijer::visualizeFeatures( NICE::ColorImage & out, const VVector & f
   }
 }
 
-void LFColorWeijer::visualizeFeatures( const NICE::ColorImage & cimg ) const
+void LocalFeatureColorWeijer::visualizeFeatures( const NICE::ColorImage & cimg ) const
 {
   ColorImage out;
   visualizeFeatures( cimg, out );
 }
 
-void LFColorWeijer::visualizeFeatures( const NICE::ColorImage & cimg, NICE::ColorImage &out ) const
+void LocalFeatureColorWeijer::visualizeFeatures( const NICE::ColorImage & cimg, NICE::ColorImage &out ) const
 {
   VVector pos, feats;
   for ( int y = 0; y < cimg.height(); y++ )
@@ -223,7 +226,7 @@ void LFColorWeijer::visualizeFeatures( const NICE::ColorImage & cimg, NICE::Colo
   showImage( combinedout, "result" );
 }
 
-void LFColorWeijer::getFeats( const ColorImage &img, MultiChannelImageT<double> &feats )
+void LocalFeatureColorWeijer::getFeats( const ColorImage &img, MultiChannelImageT<double> &feats )
 {
   int width = ( int )img.width();
   int height = ( int )img.height();

+ 16 - 11
features/localfeatures/LFColorWeijer.h → features/localfeatures/LocalFeatureColorWeijer.h

@@ -1,5 +1,5 @@
 /**
- * @file LFColorWeijer.cpp
+ * @file LocalFeatureColorWeijer.cpp
  * @brief implementation of the color features mentioned in van de Weijer, J. & Schmid, C. Applying Color Names to Image Description (2007)
  * @author Björn Fröhlich
  * @date 01/28/2010
@@ -7,20 +7,25 @@
 #ifndef LFColorWeijerINCLUDE
 #define LFColorWeijerINCLUDE
 
-#include "core/vector/VectorT.h"
-#include "core/vector/MatrixT.h"
-#include "core/image/ImageT.h"
-#include "core/imagedisplay/ImageDisplay.h"
-#include "core/image/MultiChannelImageT.h"
-
+// nice-core includes
+#include <core/basics/Config.h>
+// 
+#include <core/image/ImageT.h>
+#include <core/image/MultiChannelImageT.h>
+#include <core/imagedisplay/ImageDisplay.h>
+// 
+#include <core/vector/VectorT.h>
+#include <core/vector/MatrixT.h>
+
+// nice-vislearning includes
 #include "LocalFeature.h"
-#include "core/basics/Config.h"
+
 
 
 namespace OBJREC {
 
 /** interface to ColorSande implementation */
-class LFColorWeijer : public LocalFeature
+class LocalFeatureColorWeijer : public LocalFeature
 {
 
   protected:
@@ -53,10 +58,10 @@ class LFColorWeijer : public LocalFeature
   public:
 
     /** simple constructor */
-    LFColorWeijer ( const NICE::Config *c );
+    LocalFeatureColorWeijer ( const NICE::Config *c );
 
     /** simple destructor */
-    virtual ~LFColorWeijer();
+    virtual ~LocalFeatureColorWeijer();
 
     /**
      * get the size of the descriptor

+ 17 - 10
features/localfeatures/progs/testColorWeijer.cpp

@@ -1,11 +1,18 @@
+// STL includes
 #include <fstream>
-#include "core/vector/VectorT.h"
-#include "core/vector/MatrixT.h"
-#include "core/image/ImageT.h"
-#include "core/imagedisplay/ImageDisplay.h"
-#include <iostream>
-#include "vislearning/features/localfeatures/LFColorWeijer.h"
 #include <getopt.h>
+#include <iostream>
+
+// nice-core includes
+#include <core/vector/VectorT.h>
+#include <core/vector/MatrixT.h>
+// 
+#include <core/image/ImageT.h>
+#include <core/imagedisplay/ImageDisplay.h>
+
+// nice-vislearning includes
+#include <vislearning/features/localfeatures/LocalFeatureColorWeijer.h>
+
 
 using namespace std;
 using namespace NICE;
@@ -52,12 +59,12 @@ int main( int argc, char* argv[] )
     }
   }   
 
-  Config *conf = new Config();
-  LFColorWeijer lfc(conf);
+  NICE::Config *conf = new NICE::Config();
+  OBJREC::LocalFeatureColorWeijer lfc(conf);
 
   //! testen
-  ColorImage cimg(filename);
-  ColorImage out;
+  NICE::ColorImage cimg(filename);
+  NICE::ColorImage out;
   lfc.visualizeFeatures (cimg, out);
 
   cimg.writePPM("org.ppm");