MDSTk Libraries  1.1.0
Medical Data Segmentation Toolkit
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
mds::img::CSusanDetector< I > Class Template Reference

Modified Susan corner detector. More...

#include <mdsSusan.h>

Inheritance diagram for mds::img::CSusanDetector< I >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { TEMPLATE_PARAMETER_IS_NOT_IMAGE = I::CLASS_IMAGE }
 Check that I is an image. More...
enum  { MAX_LUT = 255 }
 Maximal value stored in the internal lookup table. More...
enum  { LUT_SIZE = 2 * MAX_LUT + 1 }
 Size of the internal lookup table. More...
enum  { DIFF_THRESHOLD = 700 }
 Threshold used to suppress non-corner points. More...
typedef CImageCornerDetector< I > base
 Image corner detector base.
typedef base::tImage tImage
 Image type.
typedef base::tPixel tPixel
 Image pixel type.

Public Member Functions

 CSusanDetector (double dThreshold, double dWidth=20.0)
 Constructor.
double getThreshold ()
 Returns detection threshold.
double getWidth ()
 Returns the width parameter.
bool operator() (const tImage &SrcImage, tImage &DstImage)
 Corner detection in a given image.
void setThreshold (double dThreshold)
 Sets the detection threshold.
void setWidth (double dWidth)
 Sets the width parameter.
 ~CSusanDetector ()
 Destructor.

Protected Member Functions

bool checkNeighbours (CFImage &Image, tSize x, tSize y, tFloatPixel T)
 Returns true if any neighbouring pixel has greater value than a given threshold.
int getDiff (int a, int b)
 Returns difference of two given pixels.
void initLUT ()
 Initializes internal lookup table.

Protected Attributes

double m_dInvWidth
double m_dThreshold
 Susan corner detector parameters.
double m_dWidth
mds::math::CStaticVector< int,
LUT_SIZE
m_LUT
 Internal lookup table used for fast computation of the exp() function.

Detailed Description

template<class I>
class mds::img::CSusanDetector< I >

Modified Susan corner detector.


Member Typedef Documentation

template<class I >
typedef CImageCornerDetector<I> mds::img::CSusanDetector< I >::base

Image corner detector base.

template<class I >
typedef base::tImage mds::img::CSusanDetector< I >::tImage

Image type.

Reimplemented from mds::img::CImageCornerDetector< I >.

template<class I >
typedef base::tPixel mds::img::CSusanDetector< I >::tPixel

Image pixel type.

Reimplemented from mds::img::CImageCornerDetector< I >.


Member Enumeration Documentation

template<class I >
anonymous enum [inherited]

Check that I is an image.

You will see name of this enum somewhere in compiler error message if the type I is not image.

Enumerator:
TEMPLATE_PARAMETER_IS_NOT_IMAGE 
template<class I >
anonymous enum

Maximal value stored in the internal lookup table.

Enumerator:
MAX_LUT 
template<class I >
anonymous enum

Size of the internal lookup table.

Enumerator:
LUT_SIZE 
template<class I >
anonymous enum

Threshold used to suppress non-corner points.

Enumerator:
DIFF_THRESHOLD 

Constructor & Destructor Documentation

template<class I >
CSusanDetector::CSusanDetector ( double  dThreshold,
double  dWidth = 20.0 
)

Constructor.

  • First parameter represents normalized detection threshold.
  • Second parameter affects evaluation of difference of two pixels.
template<class I >
mds::img::CSusanDetector< I >::~CSusanDetector ( )

Destructor.


Member Function Documentation

template<class I >
bool CSusanDetector::checkNeighbours ( CFImage Image,
tSize  x,
tSize  y,
tFloatPixel  T 
) [protected]

Returns true if any neighbouring pixel has greater value than a given threshold.

template<class I >
int CSusanDetector::getDiff ( int  a,
int  b 
) [protected]

Returns difference of two given pixels.

template<class I >
double mds::img::CSusanDetector< I >::getThreshold ( )

Returns detection threshold.

template<class I >
double mds::img::CSusanDetector< I >::getWidth ( )

Returns the width parameter.

template<class I >
void CSusanDetector::initLUT ( ) [protected]

Initializes internal lookup table.

template<class I >
bool CSusanDetector::operator() ( const tImage SrcImage,
tImage DstImage 
) [virtual]

Corner detection in a given image.

  • Magnitude image is produced.
  • Returns false on failure.

Implements mds::img::CImageCornerDetector< I >.

template<class I >
void CSusanDetector::setThreshold ( double  dThreshold)

Sets the detection threshold.

template<class I >
void CSusanDetector::setWidth ( double  dWidth)

Sets the width parameter.


Member Data Documentation

template<class I >
double mds::img::CSusanDetector< I >::m_dInvWidth [protected]
template<class I >
double mds::img::CSusanDetector< I >::m_dThreshold [protected]

Susan corner detector parameters.

template<class I >
double mds::img::CSusanDetector< I >::m_dWidth [protected]
template<class I >
mds::math::CStaticVector<int, LUT_SIZE> mds::img::CSusanDetector< I >::m_LUT [protected]

Internal lookup table used for fast computation of the exp() function.


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