Class for computing SIFT features in a CByteImage. More...
#include <SIFTFeatureCalculator.h>
Public Member Functions | |
int | CalculateFeatures (const CByteImage *pImage, CDynamicArray *pResultList, bool bManageMemory=true) |
CSIFTFeatureCalculator (float fThreshold=0.05f, int nOctaves=3) | |
int | GetNumberOfOctaves () |
float | GetThreshold () |
void | SetNumberOfOctaves (int nOctaves) |
void | SetThreshold (float fThreshold) |
~CSIFTFeatureCalculator () | |
Static Public Member Functions | |
static void | CreateSIFTDescriptors (const CFloatMatrix *pImage, CDynamicArray *pResultList, float x, float y, float scale, float sigma, const float *pOrientationWeights, bool bManageMemory=true, bool bPerform80PercentCheck=true) |
static void | CreateSIFTDescriptors (const CByteImage *pImage, CDynamicArray *pResultList, float x, float y, float scale=1.0f, bool bManageMemory=true, bool bPerform80PercentCheck=true) |
static void | CreateSIFTDescriptors (const CByteImage *pImage, CDynamicArrayTemplatePointer< CFeatureEntry > &resultList, float x, float y, float scale=1.0f, bool bPerform80PercentCheck=true) |
static void | InitializeVariables () |
Private Member Functions | |
void | FindScaleSpaceExtrema (const CFloatMatrix *pImage, float scale, int nOctave) |
Static Private Member Functions | |
static void | DetermineDominatingOrientations (const CFloatMatrix *pAngleMatrix, const CFloatMatrix *pMagnitudeMatrix, CDynamicArrayTemplate< float > &orientations, bool bPerform80PercentCheck) |
Private Attributes | |
bool | m_bManageMemory |
float | m_fThreshold |
int | m_nOctaves |
CDynamicArray * | m_pResultList |
Static Private Attributes | |
static float | diffk_ = sqrtf(k_ * k_ - 1) |
static float | diffsigma0_ = SIGMA0 * SIGMA0 - prescaledsigma_ * prescaledsigma_ |
static float | edgethreshold_ = (EDGE_THRESHOLD + 1) * (EDGE_THRESHOLD + 1) / EDGE_THRESHOLD |
static float | k_ = powf(2.0f, 1.0f / S) |
static int | m_bInitialized = false |
static float | prescaledsigma_ = PRESIGMA * PRESCALE |
static float | SIFTDescriptorWeights [256] |
static float | SIFTDiffSigmas [MAX_SCALES] |
static float * | SIFTGaussianFilters [MAX_SCALES] |
static int | SIFTKernelRadius [MAX_SCALES] |
static float | SIFTOrientationWeights [256 *(MAX_SCALES+1)] |
static int | SIFTPointers [256] |
static float | SIFTSigmas [MAX_SCALES] |
static float | SIFTWeights [256] |
Class for computing SIFT features in a CByteImage.
Definition at line 81 of file SIFTFeatureCalculator.h.
CSIFTFeatureCalculator::CSIFTFeatureCalculator | ( | float | fThreshold = 0.05f , |
int | nOctaves = 3 |
||
) |
Definition at line 92 of file SIFTFeatureCalculator.cpp.
Definition at line 103 of file SIFTFeatureCalculator.cpp.
int CSIFTFeatureCalculator::CalculateFeatures | ( | const CByteImage * | pImage, |
CDynamicArray * | pResultList, | ||
bool | bManageMemory = true |
||
) | [virtual] |
Implements CFeatureCalculatorInterface.
Definition at line 167 of file SIFTFeatureCalculator.cpp.
void CSIFTFeatureCalculator::CreateSIFTDescriptors | ( | const CFloatMatrix * | pImage, |
CDynamicArray * | pResultList, | ||
float | x, | ||
float | y, | ||
float | scale, | ||
float | sigma, | ||
const float * | pOrientationWeights, | ||
bool | bManageMemory = true , |
||
bool | bPerform80PercentCheck = true |
||
) | [static] |
Definition at line 279 of file SIFTFeatureCalculator.cpp.
void CSIFTFeatureCalculator::CreateSIFTDescriptors | ( | const CByteImage * | pImage, |
CDynamicArray * | pResultList, | ||
float | x, | ||
float | y, | ||
float | scale = 1.0f , |
||
bool | bManageMemory = true , |
||
bool | bPerform80PercentCheck = true |
||
) | [static] |
Definition at line 392 of file SIFTFeatureCalculator.cpp.
void CSIFTFeatureCalculator::CreateSIFTDescriptors | ( | const CByteImage * | pImage, |
CDynamicArrayTemplatePointer< CFeatureEntry > & | resultList, | ||
float | x, | ||
float | y, | ||
float | scale = 1.0f , |
||
bool | bPerform80PercentCheck = true |
||
) | [static] |
Definition at line 501 of file SIFTFeatureCalculator.cpp.
void CSIFTFeatureCalculator::DetermineDominatingOrientations | ( | const CFloatMatrix * | pAngleMatrix, |
const CFloatMatrix * | pMagnitudeMatrix, | ||
CDynamicArrayTemplate< float > & | orientations, | ||
bool | bPerform80PercentCheck | ||
) | [static, private] |
Definition at line 204 of file SIFTFeatureCalculator.cpp.
void CSIFTFeatureCalculator::FindScaleSpaceExtrema | ( | const CFloatMatrix * | pImage, |
float | scale, | ||
int | nOctave | ||
) | [private] |
Definition at line 640 of file SIFTFeatureCalculator.cpp.
int CSIFTFeatureCalculator::GetNumberOfOctaves | ( | ) | [inline] |
Definition at line 99 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::GetThreshold | ( | ) | [inline] |
Definition at line 98 of file SIFTFeatureCalculator.h.
void CSIFTFeatureCalculator::InitializeVariables | ( | ) | [static] |
Definition at line 112 of file SIFTFeatureCalculator.cpp.
void CSIFTFeatureCalculator::SetNumberOfOctaves | ( | int | nOctaves | ) | [inline] |
Definition at line 96 of file SIFTFeatureCalculator.h.
void CSIFTFeatureCalculator::SetThreshold | ( | float | fThreshold | ) | [inline] |
Definition at line 95 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::diffk_ = sqrtf(k_ * k_ - 1) [static, private] |
Definition at line 123 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::diffsigma0_ = SIGMA0 * SIGMA0 - prescaledsigma_ * prescaledsigma_ [static, private] |
Definition at line 125 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::edgethreshold_ = (EDGE_THRESHOLD + 1) * (EDGE_THRESHOLD + 1) / EDGE_THRESHOLD [static, private] |
Definition at line 121 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::k_ = powf(2.0f, 1.0f / S) [static, private] |
Definition at line 122 of file SIFTFeatureCalculator.h.
int CSIFTFeatureCalculator::m_bInitialized = false [static, private] |
Definition at line 137 of file SIFTFeatureCalculator.h.
bool CSIFTFeatureCalculator::m_bManageMemory [private] |
Definition at line 118 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::m_fThreshold [private] |
Definition at line 114 of file SIFTFeatureCalculator.h.
int CSIFTFeatureCalculator::m_nOctaves [private] |
Definition at line 115 of file SIFTFeatureCalculator.h.
Definition at line 117 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::prescaledsigma_ = PRESIGMA * PRESCALE [static, private] |
Definition at line 124 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::SIFTDescriptorWeights [static, private] |
Definition at line 130 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::SIFTDiffSigmas [static, private] |
Definition at line 132 of file SIFTFeatureCalculator.h.
float* CSIFTFeatureCalculator::SIFTGaussianFilters[MAX_SCALES] [static, private] |
Definition at line 134 of file SIFTFeatureCalculator.h.
int CSIFTFeatureCalculator::SIFTKernelRadius [static, private] |
Definition at line 135 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::SIFTOrientationWeights [static, private] |
Definition at line 129 of file SIFTFeatureCalculator.h.
int CSIFTFeatureCalculator::SIFTPointers [static, private] |
Definition at line 127 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::SIFTSigmas [static, private] |
Definition at line 133 of file SIFTFeatureCalculator.h.
float CSIFTFeatureCalculator::SIFTWeights [static, private] |
Definition at line 128 of file SIFTFeatureCalculator.h.