#include <sift.hpp>
sift::Sift::Sift |
( |
u16_t |
dogsPerEpoch = 3 , |
|
|
u16_t |
octaves = 3 , |
|
|
f32_t |
sigma = 1.6 , |
|
|
f32_t |
k = std::sqrt(2) , |
|
|
bool |
subpixel = false |
|
) |
| |
|
inlineexplicit |
- Parameters
-
sigma | standard value 1.6 |
k | standard value square root of 2 |
dogsPerEpoch | How many DOGs should be created per octave |
octaves | how many octaves should be calculated |
subpixel | wether the calculation is based on subpixel basis or not |
void sift::Sift::_createDecriptors |
( |
std::vector< InterestPoint > & |
interestPoints | ) |
|
|
private |
Creates the local image desciptors.
- Parameters
-
interestpoints | the vector with interestpoints |
Creates the Difference of Gaussians for the count of octaves.
- Parameters
-
- Returns
- a matrix with the octaves as width and octave elements as height, which contain the DoGs
void sift::Sift::_createMagnitudePyramid |
( |
| ) |
|
|
private |
Creates magnitude versions of all the gaussian images.
void sift::Sift::_createOrientationPyramid |
( |
| ) |
|
|
private |
Create orientation versions of all the gaussian images.
Keypoint Location using Taylor expansion to filter the weak interest points. Those interest points, which get filtered get their filtered flag set to true
- Parameters
-
interestpoints | the vector with interestpoints |
dogs | the dogs which were calculated in an earlier step |
std::vector< f32_t > sift::Sift::_eliminateVectorThreshold |
( |
std::vector< f32_t > & |
vec | ) |
const |
|
private |
Eliminates all values above the threshold of 0.2 and performs a new vector normalization as long as there are no more values above 0.2
- Parameters
-
Finds the nearest gaussian, based on the scale given
- Parameters
-
- Returns
- the point where the Gaussian is lying in the pyramid
const std::set< f32_t > sift::Sift::_findPeaks |
( |
const std::array< f32_t, 36 > & |
histo | ) |
const |
|
private |
Searches for the highest Element in the orientation histogram and searches for other orientations within a 80% range. Everything outside the range will be set to -1.
- Parameters
-
histo | The given histogram on which the peak calculation finds place |
- Returns
- an array with 36 elements, standing for the 36 bins of orientation possibilities
Finds the Scale space extrema aka InterestPoints
- Parameters
-
dogs | a matrix of DOGs |
interestPoints | a vector which holds interestPoints. Will be filled with the found interest points |
void sift::Sift::_orientationAssignment |
( |
std::vector< InterestPoint > & |
interestPoints | ) |
|
|
private |
Calculates the orientation assignments for the interestPoints
- Parameters
-
interestPoints | the found interestPoints for whom the orientation should be calulated |
Processes the whole Sift calculation
- Parameters
-
- Returns
- a vector containing the filtered sift features
const u16_t sift::Sift::_dogsPerEpoch |
|
private |
How many DoGs will be calculated per epoch. Minimum is 3.
The Gaussians calculated during the algorithm.
const f32_t sift::Sift::_k |
|
private |
The constant which is multiplied with sigma to get the Gaussians and DoGs.
Matrix<vigra::MultiArray<2, f32_t> > sift::Sift::_magnitudes |
|
private |
The magnitudes of the gaussians
const u16_t sift::Sift::_octaves |
|
private |
How many octaves of DoGs will be calculated.
Matrix<vigra::MultiArray<2, f32_t> > sift::Sift::_orientations |
|
private |
The orientations of the gaussians
const f32_t sift::Sift::_sigma |
|
private |
The sigma value is used for the standard derivation of the Gaussian calculations.
const bool sift::Sift::subpixel |
Wether to process the algorithm based on subpixel basis or not
The documentation for this class was generated from the following files: