Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
BIAS::CornerDetectorSusan< StorageType > Class Template Reference

The Susan corner detector (oxford implementation, see license) More...

#include <FeatureDetector/CornerDetectorSusan.hh>

+ Inheritance diagram for BIAS::CornerDetectorSusan< StorageType >:
+ Collaboration diagram for BIAS::CornerDetectorSusan< StorageType >:

Public Types

enum  ECDType {
  CDT_Invalid, CDT_Susan, CDT_Harris, CDT_Foerstner,
  CDT_KLT, CDT_Laplace
}
 the differnet types of corner detectors More...
 

Public Member Functions

void AddDebugLevel (const long int lv)
 
void AddDebugLevel (const std::string &name)
 
 CornerDetectorSusan ()
 
bool DebugLevelIsSet (const long int lv) const
 
bool DebugLevelIsSet (const std::string &name) const
 
virtual int Detect (const Image< StorageType > &image, std::vector< HomgPoint2D > &pvec, std::vector< QUAL > &quality)
 Susan Corner Detector returning homogenous points,. More...
 
int Detect (const Image< StorageType > &image, CORNER_LIST corner_list, int &num)
 Susan Corner Detector returning corner list, fast interface for daimler. More...
 
int Detect (const Image< StorageType > &image, const Image< StorageType > &roi, CORNER_LIST corner_list, int &num)
 Susan Corner Detector returning corner list, only detects corners where roi!=0. More...
 
int GetDebugLevel () const
 
std::ostream & GetDebugStream () const
 
void GetDebugStream (std::ostream &os) const
 
int GetMaxNumFeatures ()
 
long int Name2DebugLevel (const std::string &name) const
 looks up a debuglevel in the internal map, returns 0 if not found More...
 
long int NewDebugLevel (const std::string &name)
 creates a new debuglevel More...
 
void PrintDebugLevel (std::ostream &os=std::cout) const
 
void RemoveDebugLevel (const long int lv)
 
void RemoveDebugLevel (const std::string &name)
 
void SetDebugLevel (const long int lv)
 
void SetDebugLevel (const std::string &name)
 
void SetDebugStream (const std::ostream &os)
 
void SetMaxNumFeatures (const int maxnum)
 
void ShowDebugLevel (std::ostream &os=std::cout) const
 prints all internally known debuglevels More...
 
 ~CornerDetectorSusan ()
 

Static Public Member Functions

static long int GetGlobalDebugLevel ()
 
static void SetGlobalDebugLevel (long int lev)
 

Protected Member Functions

void _int_to_uchar (const int *r, StorageType *in, int size)
 protected function for susan More...
 
void _setup_brightness_lut (int thresh, int form)
 protected function for susan More...
 
int _susan_corners (const StorageType *in, int *r, StorageType *bp, CORNER_LIST corner_list, int x_size, int y_size)
 returns the number of corners found More...
 
int _susan_corners (const StorageType *in, int *r, StorageType *bp, CORNER_LIST corner_list, int x_size, int y_size, const StorageType *roi)
 faster version of the above More...
 
int _susan_corners_quick (const StorageType *in, int *r, StorageType *bp, CORNER_LIST corner_list, int x_size, int y_size)
 returns the number of corners found More...
 
void _SusanReAllocMem (int x_size, int y_size)
 allocates the internal data structures for susan corner detector More...
 
long ConsumeNextFreeDebuglevel_ ()
 returns the next available debuglevel More...
 

Protected Attributes

StorageType * _bp
 
int * _cgx
 local vars for susan More...
 
int * _cgy
 
long int _liDebugLevel
 
long int _liNextDebugLevel
 new concept, debuglevel are managed here in the debug class More...
 
int _MaxNum
 maximum number of corners to return More...
 
int _num
 
int _NumTilesX
 
int _NumTilesY
 
bool _Quick
 
int * _r
 
std::map< std::string, long int > _String2Debuglevel
 
int _susansize
 
int _susanthresh
 
int _Threshold
 parameter More...
 

Static Protected Attributes

static std::ostream _zDebugStream
 
static long int GlobalDebugLevel = 0
 

Detailed Description

template<class StorageType>
class BIAS::CornerDetectorSusan< StorageType >

The Susan corner detector (oxford implementation, see license)

See documentation inside CornerDetectorSusan.hh

Author
woelk 09/2004
Examples:
ExampleCornerDetector.cpp.

Definition at line 223 of file CornerDetectorSusan.hh.

Member Enumeration Documentation

template<class StorageType>
enum BIAS::CornerDetectorBase::ECDType
inherited

the differnet types of corner detectors

Enumerator
CDT_Invalid 
CDT_Susan 
CDT_Harris 
CDT_Foerstner 
CDT_KLT 
CDT_Laplace 

Definition at line 57 of file CornerDetectorBase.hh.

Constructor & Destructor Documentation

template<class StorageType >
CornerDetectorSusan::CornerDetectorSusan ( )
template<class StorageType >
CornerDetectorSusan::~CornerDetectorSusan ( )

Definition at line 218 of file CornerDetectorSusan.cpp.

Member Function Documentation

template<class StorageType >
void CornerDetectorSusan::_int_to_uchar ( const int *  r,
StorageType *  in,
int  size 
)
protected

protected function for susan

Definition at line 352 of file CornerDetectorSusan.cpp.

template<class StorageType >
void CornerDetectorSusan::_setup_brightness_lut ( int  thresh,
int  form 
)
protected

protected function for susan

Definition at line 377 of file CornerDetectorSusan.cpp.

template<class StorageType >
int CornerDetectorSusan::_susan_corners ( const StorageType *  in,
int *  r,
StorageType *  bp,
CORNER_LIST  corner_list,
int  x_size,
int  y_size 
)
protected

returns the number of corners found

Definition at line 402 of file CornerDetectorSusan.cpp.

template<class StorageType >
int CornerDetectorSusan::_susan_corners ( const StorageType *  in,
int *  r,
StorageType *  bp,
CORNER_LIST  corner_list,
int  x_size,
int  y_size,
const StorageType *  roi 
)
protected

faster version of the above

Author
woelk 08 2003

Definition at line 689 of file CornerDetectorSusan.cpp.

template<class StorageType >
int CornerDetectorSusan::_susan_corners_quick ( const StorageType *  in,
int *  r,
StorageType *  bp,
CORNER_LIST  corner_list,
int  x_size,
int  y_size 
)
protected

returns the number of corners found

Definition at line 991 of file CornerDetectorSusan.cpp.

template<class StorageType>
void BIAS::CornerDetectorSusan< StorageType >::_SusanReAllocMem ( int  x_size,
int  y_size 
)
inlineprotected

allocates the internal data structures for susan corner detector

Definition at line 281 of file CornerDetectorSusan.hh.

void BIAS::Debug::AddDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::AddDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 362 of file Debug.hh.

long BIAS::Debug::ConsumeNextFreeDebuglevel_ ( )
inlineprotectedinherited

returns the next available debuglevel

Author
woelk 09/2006

Definition at line 521 of file Debug.hh.

bool BIAS::Debug::DebugLevelIsSet ( const long int  lv) const
inlineinherited
bool BIAS::Debug::DebugLevelIsSet ( const std::string &  name) const
inlineinherited

Definition at line 350 of file Debug.hh.

template<class StorageType>
virtual int BIAS::CornerDetectorSusan< StorageType >::Detect ( const Image< StorageType > &  image,
std::vector< HomgPoint2D > &  pvec,
std::vector< QUAL > &  quality 
)
virtual

Susan Corner Detector returning homogenous points,.

Author
woelk

Reimplemented from BIAS::CornerDetectorBase< StorageType >.

template<class StorageType >
int CornerDetectorSusan::Detect ( const Image< StorageType > &  image,
CORNER_LIST  corner_list,
int &  num 
)

Susan Corner Detector returning corner list, fast interface for daimler.

Author
woelk

Definition at line 228 of file CornerDetectorSusan.cpp.

References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageData(), BIAS::ImageBase::GetWidth(), and BIAS::ImageBase::IsEmpty().

template<class StorageType >
int CornerDetectorSusan::Detect ( const Image< StorageType > &  image,
const Image< StorageType > &  roi,
CORNER_LIST  corner_list,
int &  num 
)

Susan Corner Detector returning corner list, only detects corners where roi!=0.

Author
woelk

Definition at line 258 of file CornerDetectorSusan.cpp.

References BIAS::ImageBase::GetChannelCount(), BIAS::ImageBase::GetHeight(), BIAS::Image< StorageType >::GetImageData(), BIAS::ImageBase::GetWidth(), and BIAS::ImageBase::IsEmpty().

int BIAS::Debug::GetDebugLevel ( ) const
inlineinherited
std::ostream& BIAS::Debug::GetDebugStream ( ) const
inlineinherited

Definition at line 405 of file Debug.hh.

void BIAS::Debug::GetDebugStream ( std::ostream &  os) const
inlineinherited

Definition at line 414 of file Debug.hh.

static long int BIAS::Debug::GetGlobalDebugLevel ( )
inlinestaticinherited

Definition at line 431 of file Debug.hh.

template<class StorageType>
int BIAS::CornerDetectorBase< StorageType >::GetMaxNumFeatures ( )
inlineinherited
Author
Dennis Herzog

Definition at line 73 of file CornerDetectorBase.hh.

long int BIAS::Debug::Name2DebugLevel ( const std::string &  name) const
inlineinherited

looks up a debuglevel in the internal map, returns 0 if not found

Author
woelk 09/2006

Definition at line 454 of file Debug.hh.

long int BIAS::Debug::NewDebugLevel ( const std::string &  name)
inlineinherited
void BIAS::Debug::PrintDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

Definition at line 383 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const long int  lv)
inlineinherited

Definition at line 369 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 376 of file Debug.hh.

void BIAS::Debug::SetDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::SetDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 325 of file Debug.hh.

void BIAS::Debug::SetDebugStream ( const std::ostream &  os)
inlineinherited

Definition at line 398 of file Debug.hh.

static void BIAS::Debug::SetGlobalDebugLevel ( long int  lev)
inlinestaticinherited

Definition at line 424 of file Debug.hh.

template<class StorageType>
void BIAS::CornerDetectorBase< StorageType >::SetMaxNumFeatures ( const int  maxnum)
inlineinherited

Definition at line 70 of file CornerDetectorBase.hh.

void BIAS::Debug::ShowDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

prints all internally known debuglevels

Author
woelk 09/2006

Definition at line 496 of file Debug.hh.

Member Data Documentation

template<class StorageType>
StorageType* BIAS::CornerDetectorSusan< StorageType >::_bp
protected
template<class StorageType>
int* BIAS::CornerDetectorSusan< StorageType >::_cgx
protected

local vars for susan

Definition at line 254 of file CornerDetectorSusan.hh.

Referenced by BIAS::CornerDetectorSusan< StorageType >::CornerDetectorSusan().

template<class StorageType>
int * BIAS::CornerDetectorSusan< StorageType >::_cgy
protected
long int BIAS::Debug::_liDebugLevel
protectedinherited

Definition at line 510 of file Debug.hh.

Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().

long int BIAS::Debug::_liNextDebugLevel
protectedinherited

new concept, debuglevel are managed here in the debug class

Definition at line 516 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

template<class StorageType>
int BIAS::CornerDetectorBase< StorageType >::_MaxNum
protectedinherited

maximum number of corners to return

Definition at line 81 of file CornerDetectorBase.hh.

Referenced by BIAS::CornerDetectorSusan< StorageType >::CornerDetectorSusan().

template<class StorageType>
int BIAS::CornerDetectorSusan< StorageType >::_num
protected

Definition at line 254 of file CornerDetectorSusan.hh.

template<class StorageType>
int BIAS::CornerDetectorBase< StorageType >::_NumTilesX
protectedinherited
Todo:
implement tiling mechanism

Definition at line 78 of file CornerDetectorBase.hh.

template<class StorageType>
int BIAS::CornerDetectorBase< StorageType >::_NumTilesY
protectedinherited

Definition at line 78 of file CornerDetectorBase.hh.

template<class StorageType>
bool BIAS::CornerDetectorSusan< StorageType >::_Quick
protected
template<class StorageType>
int * BIAS::CornerDetectorSusan< StorageType >::_r
protected
std::map<std::string, long int> BIAS::Debug::_String2Debuglevel
protectedinherited

Definition at line 517 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

template<class StorageType>
int BIAS::CornerDetectorSusan< StorageType >::_susansize
protected
template<class StorageType>
int BIAS::CornerDetectorSusan< StorageType >::_susanthresh
protected
template<class StorageType>
int BIAS::CornerDetectorSusan< StorageType >::_Threshold
protected
std::ostream BIAS::Debug::_zDebugStream
staticprotectedinherited

Definition at line 511 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

long int BIAS::Debug::GlobalDebugLevel = 0
staticprotectedinherited

Definition at line 513 of file Debug.hh.


The documentation for this class was generated from the following files: