MVE - Multi-View Environment mve-devel
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | List of all members
sfm::Sift Class Reference

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< DescriptorDescriptors
 
typedef std::vector< KeypointKeypoints
 

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< OctaveOctaves
 

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)
 

Detailed Description

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:

http://www.vlfeat.org/~vedaldi/code/siftpp.html

Definition at line 42 of file sift.h.

Member Typedef Documentation

◆ Descriptors

typedef std::vector<Descriptor> sfm::Sift::Descriptors

Definition at line 153 of file sift.h.

◆ Keypoints

typedef std::vector<Keypoint> sfm::Sift::Keypoints

Definition at line 152 of file sift.h.

◆ Octaves

typedef std::vector<Octave> sfm::Sift::Octaves
protected

Definition at line 193 of file sift.h.

Constructor & Destructor Documentation

◆ Sift()

sfm::Sift::Sift ( Options const &  options)
explicit

Definition at line 24 of file sift.cc.

Member Function Documentation

◆ add_octave()

void sfm::Sift::add_octave ( mve::FloatImage::ConstPtr  image,
float  has_sigma,
float  target_sigma 
)
protected

Definition at line 213 of file sift.cc.

◆ create_octaves()

void sfm::Sift::create_octaves ( void  )
protected

Definition at line 170 of file sift.cc.

◆ descriptor_assignment()

bool sfm::Sift::descriptor_assignment ( Keypoint const &  kp,
Descriptor desc,
Octave const *  octave 
)
protected

Definition at line 702 of file sift.cc.

◆ descriptor_generation()

void sfm::Sift::descriptor_generation ( void  )
protected

Definition at line 491 of file sift.cc.

◆ extrema_detection() [1/2]

std::size_t sfm::Sift::extrema_detection ( mve::FloatImage::ConstPtr  s[3],
int  oi,
int  si 
)
protected

Definition at line 287 of file sift.cc.

◆ extrema_detection() [2/2]

void sfm::Sift::extrema_detection ( void  )
protected

Definition at line 264 of file sift.cc.

◆ generate_grad_ori_images()

void sfm::Sift::generate_grad_ori_images ( Octave octave)
protected

Definition at line 558 of file sift.cc.

◆ get_descriptors()

Sift::Descriptors const & sfm::Sift::get_descriptors ( void  ) const
inline

Returns the list of descriptors.

Definition at line 245 of file sift.h.

◆ get_keypoints()

Sift::Keypoints const & sfm::Sift::get_keypoints ( void  ) const
inline

Returns the list of keypoints.

Definition at line 239 of file sift.h.

◆ keypoint_absolute_scale()

float sfm::Sift::keypoint_absolute_scale ( Keypoint const &  kp)
protected

Definition at line 862 of file sift.cc.

◆ keypoint_localization()

void sfm::Sift::keypoint_localization ( void  )
protected

Definition at line 340 of file sift.cc.

◆ keypoint_relative_scale()

float sfm::Sift::keypoint_relative_scale ( Keypoint const &  kp)
protected

Definition at line 855 of file sift.cc.

◆ load_lowe_descriptors()

void sfm::Sift::load_lowe_descriptors ( std::string const &  filename,
Descriptors result 
)
static

Helper function that creates SIFT descriptors from David Lowe's SIFT descriptor files.

Definition at line 871 of file sift.cc.

◆ orientation_assignment()

void sfm::Sift::orientation_assignment ( Keypoint const &  kp,
Octave const *  octave,
std::vector< float > &  orientations 
)
protected

Definition at line 599 of file sift.cc.

◆ process()

void sfm::Sift::process ( void  )

Starts the SIFT keypoint detection and descriptor extraction.

Definition at line 42 of file sift.cc.

◆ set_float_image()

void sfm::Sift::set_float_image ( mve::FloatImage::ConstPtr  img)

Sets the input image.

Definition at line 151 of file sift.cc.

◆ set_image()

void sfm::Sift::set_image ( mve::ByteImage::ConstPtr  img)

Sets the input image.

Definition at line 135 of file sift.cc.


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