00001 /******************************************************************************* 00002 * SurfExtractorBase.h 00003 * 00004 * (C) 2008 AG Aktives Sehen <agas@uni-koblenz.de> 00005 * Universitaet Koblenz-Landau 00006 * 00007 *******************************************************************************/ 00008 00009 #ifndef SurfExtractorBase_H 00010 #define SurfExtractorBase_H 00011 00012 #include <vector> 00013 #include <string> 00014 #include "../../Workers/Puma2/GrayLevelImage8.h" 00015 00016 #include "Workers/Math/Box2D.h" 00017 #include "Workers/Math/Point2D.h" 00018 #include "../../Workers/Puma2/ImageMask.h" 00019 00020 //#include "Architecture/Serializer/ExtendedOutStream.h" // TODO get rid 00021 //#include "Architecture/Serializer/ExtendedInStream.h" // TODO get rid 00022 00023 #include "KeyPoint.h" 00024 #include "KeyPointExtractor.h" 00025 00026 00032 class SurfExtractorBase: public KeyPointExtractor 00033 { 00034 public: 00035 00037 SurfExtractorBase( ); 00038 00040 SurfExtractorBase( const SurfExtractorBase& other ); 00041 00043 virtual ~SurfExtractorBase(); 00044 00046 SurfExtractorBase& operator=( const SurfExtractorBase& other ); 00047 00051 void setSamplingStep( int newValue ); 00052 void setOctaves( int newValue ); 00053 void setBlobResponseThreshold( double newValue ); 00054 void setInitLobeSize( int newValue ); 00055 void setRotationInvariance( bool newValue ); 00056 void setExtended( bool newValue ); 00057 00059 virtual std::string getDescription(); 00060 00061 protected: 00062 00063 // Parameters for the SURF algorithm 00064 00066 int m_IndexSize; 00068 int m_SamplingStep; 00070 int m_Octaves; 00072 double m_BlobResponseThreshold; 00074 int m_InitLobeSize; 00076 bool m_RotationInvariance; 00078 bool m_Extended; 00079 }; 00080 00081 00082 #endif 00083