HessianDetector Class Reference

#include <HessianDetector.h>

List of all members.

Public Member Functions

 HessianDetector (APImage *i, int nrPoints=1000, CONVOLUTION_TYPE type=HD_BOX_FILTERS, int nrOctaves=1)
bool detect ()
void printPoints ()
void printPoints (std::ostream &o)
void dump ()
vector< vector< int > > * getPoints ()
double getMaxima (int x, int y)
int getNrPoints ()

Private Member Functions

int _getHessianDeterminant (int *pixelSumXX, int *pixelSumXY, int *pixelSumYY)
void _calculateMaxDet (int i, int j)
void _cutPointList (double average, int nrPoints)
double _getScale (int kernelSize)
int _convolutePixel (int *coordX, int *coordY, int *kernelSize)
bool _boxFilterDetect ()
bool _slidingWDetect ()
void _insertToList (int *x, int *y)

Private Attributes

APImageimage
int nrPoints
int nrOctaves
CONVOLUTION_TYPE convolutionType
std::vector< vector< int > > determinants
 0---> x | | v y
std::vector< vector< int > > orderedList
std::vector< vector< double > > maximas


Constructor & Destructor Documentation

HessianDetector::HessianDetector APImage i,
int  nrPoints = 1000,
CONVOLUTION_TYPE  type = HD_BOX_FILTERS,
int  nrOctaves = 1
 

Definition at line 29 of file HessianDetector.cpp.

References convolutionType, determinants, APImage::getHeightBW(), APImage::getWidthBW(), image, celeste::max(), maximas, nrOctaves, and orderedList.


Member Function Documentation

bool HessianDetector::_boxFilterDetect  )  [private]
 

Non-maxima suppression if any determinant in the area around the pixel is greater than the pixel, suppress the current pixel.

This can also be done in a loop.

Definition at line 229 of file HessianDetector.cpp.

References _calculateMaxDet(), _cutPointList(), cout, determinants, APImage::getHeightBW(), APImage::getWidthBW(), image, celeste::max(), and orderedList.

Referenced by detect().

void HessianDetector::_calculateMaxDet int  x,
int  y
[private]
 

Each octave has 4 kernel sizes.

Definition at line 339 of file HessianDetector.cpp.

References _convolutePixel(), determinants, HD_MAX_OCTAVES, maximas, and nrOctaves.

Referenced by _boxFilterDetect().

int HessianDetector::_convolutePixel int *  coordX,
int *  coordY,
int *  kernelSize
[private]
 

Definition at line 396 of file HessianDetector.cpp.

References _getHessianDeterminant(), APImage::getRegionSum(), and image.

Referenced by _calculateMaxDet().

void HessianDetector::_cutPointList double  average,
int  nrPoints
[private]
 

Definition at line 308 of file HessianDetector.cpp.

References cout, determinants, and orderedList.

Referenced by _boxFilterDetect().

int HessianDetector::_getHessianDeterminant int *  pixelSumXX,
int *  pixelSumXY,
int *  pixelSumYY
[private]
 

Definition at line 392 of file HessianDetector.cpp.

References vigra_ext::pow().

Referenced by _convolutePixel().

double HessianDetector::_getScale int  kernelSize  )  [private]
 

Definition at line 690 of file HessianDetector.cpp.

void HessianDetector::_insertToList int *  x,
int *  y
[private]
 

Definition at line 598 of file HessianDetector.cpp.

References determinants, and orderedList.

Referenced by _slidingWDetect().

bool HessianDetector::_slidingWDetect  )  [private]
 

if any determinant in the area around the pixel is greater than the pixel, suppress the current pixel

This can also be done in a loop.

Definition at line 66 of file HessianDetector.cpp.

References _insertToList(), determinants, APImage::getHeight(), APImage::getHeightBW(), APImage::getPixel(), APImage::getWidth(), APImage::getWidthBW(), image, maximas, vigra_ext::pow(), hugin_utils::round(), and APImage::scale().

Referenced by detect().

bool HessianDetector::detect  ) 
 

Definition at line 57 of file HessianDetector.cpp.

References _boxFilterDetect(), _slidingWDetect(), and convolutionType.

Referenced by main().

void HessianDetector::dump  ) 
 

Definition at line 693 of file HessianDetector.cpp.

double HessianDetector::getMaxima int  x,
int  y
 

Definition at line 687 of file HessianDetector.cpp.

References maximas.

Referenced by Descriptor::_getMaxima().

int HessianDetector::getNrPoints  ) 
 

Definition at line 684 of file HessianDetector.cpp.

vector< vector< int > > * HessianDetector::getPoints  ) 
 

Definition at line 681 of file HessianDetector.cpp.

Referenced by main().

void HessianDetector::printPoints std::ostream o  ) 
 

Definition at line 655 of file HessianDetector.cpp.

References cout, and orderedList.

void HessianDetector::printPoints  ) 
 

Definition at line 641 of file HessianDetector.cpp.

References cout, APImage::drawCircle(), HD_INIT_KERNEL_SIZE, image, maximas, orderedList, and APImage::show().


Member Data Documentation

CONVOLUTION_TYPE HessianDetector::convolutionType [private]
 

Definition at line 60 of file HessianDetector.h.

Referenced by detect(), and HessianDetector().

std::vector<vector<int> > HessianDetector::determinants [private]
 

0---> x | | v y

Definition at line 70 of file HessianDetector.h.

Referenced by _boxFilterDetect(), _calculateMaxDet(), _cutPointList(), _insertToList(), _slidingWDetect(), and HessianDetector().

APImage* HessianDetector::image [private]
 

Definition at line 57 of file HessianDetector.h.

Referenced by _boxFilterDetect(), _convolutePixel(), _slidingWDetect(), HessianDetector(), and printPoints().

std::vector<vector<double> > HessianDetector::maximas [private]
 

Definition at line 73 of file HessianDetector.h.

Referenced by _calculateMaxDet(), _slidingWDetect(), getMaxima(), HessianDetector(), and printPoints().

int HessianDetector::nrOctaves [private]
 

Definition at line 59 of file HessianDetector.h.

Referenced by _calculateMaxDet(), and HessianDetector().

int HessianDetector::nrPoints [private]
 

Definition at line 58 of file HessianDetector.h.

std::vector<vector<int> > HessianDetector::orderedList [private]
 

Definition at line 71 of file HessianDetector.h.

Referenced by _boxFilterDetect(), _cutPointList(), _insertToList(), HessianDetector(), and printPoints().


The documentation for this class was generated from the following files:
Generated on Mon Sep 9 01:25:48 2013 for Hugintrunk by  doxygen 1.3.9.1