Point Cloud Library (PCL)  1.7.0
Public Types | Public Member Functions | Protected Member Functions
pcl::SIFTKeypoint< PointInT, PointOutT > Class Template Reference

SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset containing points and intensity. More...

#include <pcl/keypoints/sift_keypoint.h>

+ Inheritance diagram for pcl::SIFTKeypoint< PointInT, PointOutT >:

List of all members.

Public Types

typedef boost::shared_ptr
< SIFTKeypoint< PointInT,
PointOutT > > 
Ptr
typedef boost::shared_ptr
< const SIFTKeypoint< PointInT,
PointOutT > > 
ConstPtr
typedef Keypoint< PointInT,
PointOutT >::PointCloudIn 
PointCloudIn
typedef Keypoint< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut
typedef Keypoint< PointInT,
PointOutT >::KdTree 
KdTree

Public Member Functions

 SIFTKeypoint ()
 Empty constructor.
void setScales (float min_scale, int nr_octaves, int nr_scales_per_octave)
 Specify the range of scales over which to search for keypoints.
void setMinimumContrast (float min_contrast)
 Provide a threshold to limit detection of keypoints without sufficient contrast.

Protected Member Functions

bool initCompute ()
 This method should get called before starting the actual computation.
void detectKeypoints (PointCloudOut &output)
 Detect the SIFT keypoints for a set of points given in setInputCloud () using the spatial locator in setSearchMethod ().

Detailed Description

template<typename PointInT, typename PointOutT>
class pcl::SIFTKeypoint< PointInT, PointOutT >

SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset containing points and intensity.

This implementation adapts the original algorithm from images to point clouds.

For more information about the image-based SIFT interest operator, see:

David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp. 91-110.

Author:
Michael Dixon

Definition at line 94 of file sift_keypoint.h.


Member Typedef Documentation

template<typename PointInT, typename PointOutT>
typedef boost::shared_ptr<const SIFTKeypoint<PointInT, PointOutT> > pcl::SIFTKeypoint< PointInT, PointOutT >::ConstPtr

Reimplemented from pcl::Keypoint< PointInT, PointOutT >.

Definition at line 98 of file sift_keypoint.h.

template<typename PointInT, typename PointOutT>
typedef Keypoint<PointInT, PointOutT>::KdTree pcl::SIFTKeypoint< PointInT, PointOutT >::KdTree

Reimplemented from pcl::Keypoint< PointInT, PointOutT >.

Definition at line 102 of file sift_keypoint.h.

template<typename PointInT, typename PointOutT>
typedef Keypoint<PointInT, PointOutT>::PointCloudIn pcl::SIFTKeypoint< PointInT, PointOutT >::PointCloudIn

Reimplemented from pcl::Keypoint< PointInT, PointOutT >.

Definition at line 100 of file sift_keypoint.h.

template<typename PointInT, typename PointOutT>
typedef Keypoint<PointInT, PointOutT>::PointCloudOut pcl::SIFTKeypoint< PointInT, PointOutT >::PointCloudOut

Reimplemented from pcl::Keypoint< PointInT, PointOutT >.

Definition at line 101 of file sift_keypoint.h.

template<typename PointInT, typename PointOutT>
typedef boost::shared_ptr<SIFTKeypoint<PointInT, PointOutT> > pcl::SIFTKeypoint< PointInT, PointOutT >::Ptr

Reimplemented from pcl::Keypoint< PointInT, PointOutT >.

Definition at line 97 of file sift_keypoint.h.


Constructor & Destructor Documentation

template<typename PointInT, typename PointOutT>
pcl::SIFTKeypoint< PointInT, PointOutT >::SIFTKeypoint ( ) [inline]

Empty constructor.

Definition at line 112 of file sift_keypoint.h.

References pcl::Keypoint< PointInT, PointOutT >::name_.


Member Function Documentation

template<typename PointInT , typename PointOutT >
void pcl::SIFTKeypoint< PointInT, PointOutT >::detectKeypoints ( PointCloudOut output) [protected, virtual]

Detect the SIFT keypoints for a set of points given in setInputCloud () using the spatial locator in setSearchMethod ().

Parameters:
outputthe resultant cloud of keypoints

Implements pcl::Keypoint< PointInT, PointOutT >.

Definition at line 98 of file sift_keypoint.hpp.

References pcl::Filter< PointT >::filter(), pcl::PCLBase< PointT >::setInputCloud(), and pcl::VoxelGrid< PointT >::setLeafSize().

template<typename PointInT , typename PointOutT >
bool pcl::SIFTKeypoint< PointInT, PointOutT >::initCompute ( ) [protected, virtual]

This method should get called before starting the actual computation.

Internally, initCompute() does the following:

  • checks if an input dataset is given, and returns false otherwise
  • checks whether a set of input indices has been given. Returns true if yes.
  • if no input indices have been given, a fake set is created, which will be used until:
    • either a new set is given via setIndices(), or
    • a new cloud is given that has a different set of points. This will trigger an update on the set of fake indices

Reimplemented from pcl::Keypoint< PointInT, PointOutT >.

Definition at line 64 of file sift_keypoint.hpp.

template<typename PointInT , typename PointOutT >
void pcl::SIFTKeypoint< PointInT, PointOutT >::setMinimumContrast ( float  min_contrast)

Provide a threshold to limit detection of keypoints without sufficient contrast.

Parameters:
min_contrastthe minimum contrast required for detection

Definition at line 57 of file sift_keypoint.hpp.

template<typename PointInT , typename PointOutT >
void pcl::SIFTKeypoint< PointInT, PointOutT >::setScales ( float  min_scale,
int  nr_octaves,
int  nr_scales_per_octave 
)

Specify the range of scales over which to search for keypoints.

Parameters:
min_scalethe standard deviation of the smallest scale in the scale space
nr_octavesthe number of octaves (i.e. doublings of scale) to compute
nr_scales_per_octavethe number of scales to compute within each octave

Definition at line 47 of file sift_keypoint.hpp.


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