Point Cloud Library (PCL)  1.3.1
Public Types | Public Member Functions
pcl::SIFTKeypoint Class 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:
Inheritance graph
[legend]
Collaboration diagram for pcl::SIFTKeypoint:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Keypoint< PointInT,
PointOutT >::PointCloudIn 
PointCloudIn
typedef Keypoint< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut
typedef Keypoint< PointInT,
PointOutT >::KdTree 
KdTree
typedef PCLBase< PointInT > BaseClass
typedef pcl::search::Search
< PointInT >::Ptr 
KdTreePtr
typedef PointCloudIn::Ptr PointCloudInPtr
typedef PointCloudIn::ConstPtr PointCloudInConstPtr
typedef boost::function< int(int,
double, std::vector< int >
&, std::vector< float > &)> 
SearchMethod
typedef boost::function< int(const
PointCloudIn &cloud, int index,
double, std::vector< int >
&, std::vector< float > &)> 
SearchMethodSurface

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.
void setSearchSurface (const PointCloudInConstPtr &cloud)
 Provide a pointer to the input dataset that we need to estimate features at every point for.
PointCloudInConstPtr getSearchSurface ()
 Get a pointer to the surface point cloud dataset.
void setSearchMethod (const KdTreePtr &tree)
 Provide a pointer to the search object.
KdTreePtr getSearchMethod ()
 Get a pointer to the search method used.
double getSearchParameter ()
 Get the internal search parameter.
void setKSearch (int k)
 Set the number of k nearest neighbors to use for the feature estimation.
int getKSearch ()
 get the number of k nearest neighbors used for the feature estimation.
void setRadiusSearch (double radius)
 Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection.
double getRadiusSearch ()
 Get the sphere radius used for determining the neighbors.
void compute (PointCloudOut &output)
 Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()
int searchForNeighbors (int index, double parameter, std::vector< int > &indices, std::vector< float > &distances)
 Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.

Detailed Description

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

Member Typedef Documentation

typedef PCLBase<PointInT> pcl::Keypoint::BaseClass [inherited]

Definition at line 60 of file keypoint.h.

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

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

Definition at line 87 of file sift_keypoint.h.

typedef pcl::search::Search<PointInT>::Ptr pcl::Keypoint::KdTreePtr [inherited]

Definition at line 62 of file keypoint.h.

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

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

Definition at line 85 of file sift_keypoint.h.

typedef PointCloudIn::ConstPtr pcl::Keypoint::PointCloudInConstPtr [inherited]

Definition at line 65 of file keypoint.h.

typedef PointCloudIn::Ptr pcl::Keypoint::PointCloudInPtr [inherited]

Definition at line 64 of file keypoint.h.

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

Definition at line 86 of file sift_keypoint.h.

typedef boost::function<int (int, double, std::vector<int> &, std::vector<float> &)> pcl::Keypoint::SearchMethod [inherited]

Definition at line 67 of file keypoint.h.

typedef boost::function<int (const PointCloudIn &cloud, int index, double, std::vector<int> &, std::vector<float> &)> pcl::Keypoint::SearchMethodSurface [inherited]

Definition at line 68 of file keypoint.h.


Constructor & Destructor Documentation

pcl::SIFTKeypoint::SIFTKeypoint ( ) [inline]

Empty constructor.

Definition at line 96 of file sift_keypoint.h.


Member Function Documentation

void pcl::Keypoint::compute ( PointCloudOut output) [inline, inherited]

Base method for key point detection for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()

Parameters:
outputthe resultant point cloud model dataset containing the estimated features
int pcl::Keypoint::getKSearch ( ) [inline, inherited]

get the number of k nearest neighbors used for the feature estimation.

Definition at line 106 of file keypoint.h.

double pcl::Keypoint::getRadiusSearch ( ) [inline, inherited]

Get the sphere radius used for determining the neighbors.

Definition at line 117 of file keypoint.h.

KdTreePtr pcl::Keypoint::getSearchMethod ( ) [inline, inherited]

Get a pointer to the search method used.

Definition at line 92 of file keypoint.h.

double pcl::Keypoint::getSearchParameter ( ) [inline, inherited]

Get the internal search parameter.

Definition at line 96 of file keypoint.h.

PointCloudInConstPtr pcl::Keypoint::getSearchSurface ( ) [inline, inherited]

Get a pointer to the surface point cloud dataset.

Definition at line 82 of file keypoint.h.

int pcl::Keypoint::searchForNeighbors ( int  index,
double  parameter,
std::vector< int > &  indices,
std::vector< float > &  distances 
) [inline, inherited]

Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.

Parameters:
indexthe index of the query point
parameterthe search parameter (either k or radius)
indicesthe resultant vector of indices representing the k-nearest neighbors
distancesthe resultant vector of distances representing the distances from the query point to the k-nearest neighbors

Definition at line 135 of file keypoint.h.

void pcl::Keypoint::setKSearch ( int  k) [inline, inherited]

Set the number of k nearest neighbors to use for the feature estimation.

Parameters:
kthe number of k-nearest neighbors

Definition at line 102 of file keypoint.h.

void pcl::SIFTKeypoint::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 78 of file sift_keypoint.hpp.

void pcl::Keypoint::setRadiusSearch ( double  radius) [inline, inherited]

Set the sphere radius that is to be used for determining the nearest neighbors used for the key point detection.

Parameters:
radiusthe sphere radius used as the maximum distance to consider a point a neighbor

Definition at line 113 of file keypoint.h.

void pcl::SIFTKeypoint::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 48 of file sift_keypoint.hpp.

void pcl::Keypoint::setSearchMethod ( const KdTreePtr tree) [inline, inherited]

Provide a pointer to the search object.

Parameters:
treea pointer to the spatial search object.

Definition at line 88 of file keypoint.h.

void pcl::Keypoint::setSearchSurface ( const PointCloudInConstPtr cloud) [inline, inherited]

Provide a pointer to the input dataset that we need to estimate features at every point for.

Parameters:
cloudthe const boost shared pointer to a PointCloud message

Definition at line 78 of file keypoint.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines