MVE - Multi-View Environment mve-devel
|
Implementation of the SIFT feature detector and descriptor. More...
#include <sift.h>
Classes | |
struct | Descriptor |
Representation of the SIFT descriptor. More... | |
struct | Keypoint |
Representation of a SIFT keypoint. More... | |
struct | Octave |
Representation of a SIFT octave. More... | |
struct | Options |
SIFT options. More... | |
Public Types | |
typedef std::vector< Descriptor > | Descriptors |
typedef std::vector< Keypoint > | Keypoints |
Public Member Functions | |
Sift (Options const &options) | |
Descriptors const & | get_descriptors (void) const |
Returns the list of descriptors. | |
Keypoints const & | get_keypoints (void) const |
Returns the list of keypoints. | |
void | process (void) |
Starts the SIFT keypoint detection and descriptor extraction. | |
void | set_float_image (mve::FloatImage::ConstPtr img) |
Sets the input image. | |
void | set_image (mve::ByteImage::ConstPtr img) |
Sets the input image. | |
Static Public Member Functions | |
static void | load_lowe_descriptors (std::string const &filename, Descriptors *result) |
Helper function that creates SIFT descriptors from David Lowe's SIFT descriptor files. | |
Protected Types | |
typedef std::vector< Octave > | Octaves |
Protected Member Functions | |
void | add_octave (mve::FloatImage::ConstPtr image, float has_sigma, float target_sigma) |
void | create_octaves (void) |
bool | descriptor_assignment (Keypoint const &kp, Descriptor &desc, Octave const *octave) |
void | descriptor_generation (void) |
std::size_t | extrema_detection (mve::FloatImage::ConstPtr s[3], int oi, int si) |
void | extrema_detection (void) |
void | generate_grad_ori_images (Octave *octave) |
float | keypoint_absolute_scale (Keypoint const &kp) |
void | keypoint_localization (void) |
float | keypoint_relative_scale (Keypoint const &kp) |
void | orientation_assignment (Keypoint const &kp, Octave const *octave, std::vector< float > &orientations) |
Implementation of the SIFT feature detector and descriptor.
The implementation follows the description of the journal article:
Distinctive Image Features from Scale-Invariant Keypoints, David G. Lowe, International Journal of Computer Vision, 2004.
The implementation used the siftpp implementation as reference for some parts of the algorithm. This implementation is available here:
typedef std::vector<Descriptor> sfm::Sift::Descriptors |
typedef std::vector<Keypoint> sfm::Sift::Keypoints |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inline |
|
inline |
|
protected |
|
protected |
|
static |
void sfm::Sift::process | ( | void | ) |
void sfm::Sift::set_float_image | ( | mve::FloatImage::ConstPtr | img | ) |
void sfm::Sift::set_image | ( | mve::ByteImage::ConstPtr | img | ) |