Point Cloud Library (PCL)  1.3.1
Classes | Public Types | Public Member Functions | Static Public Member Functions
pcl::PyramidFeatureHistogram Class Reference

Class that compares two sets of features by using a multiscale representation of the features inside a pyramid. More...

#include <pcl/registration/pyramid_feature_matching.h>

Inheritance diagram for pcl::PyramidFeatureHistogram:
Inheritance graph
[legend]
Collaboration diagram for pcl::PyramidFeatureHistogram:
Collaboration graph
[legend]

List of all members.

Classes

struct  PyramidFeatureHistogramLevel
 Structure for representing a single pyramid histogram level. More...

Public Types

typedef boost::shared_ptr
< PyramidFeatureHistogram
< PointFeature > > 
Ptr
typedef Ptr PyramidFeatureHistogramPtr
typedef boost::shared_ptr
< const
pcl::PointRepresentation
< PointFeature > > 
FeatureRepresentationConstPtr
typedef pcl::PointCloud< PointT > PointCloud
typedef PointCloud::Ptr PointCloudPtr
typedef PointCloud::ConstPtr PointCloudConstPtr
typedef PointIndices::Ptr PointIndicesPtr
typedef PointIndices::ConstPtr PointIndicesConstPtr

Public Member Functions

 PyramidFeatureHistogram ()
 Empty constructor that instantiates the feature representation variable.
void setInputDimensionRange (std::vector< std::pair< float, float > > &dimension_range_input)
 Method for setting the input dimension range parameter.
std::vector< std::pair< float,
float > > 
getInputDimensionRange ()
 Method for retrieving the input dimension range vector.
void setTargetDimensionRange (std::vector< std::pair< float, float > > &dimension_range_target)
 Method to set the target dimension range parameter.
std::vector< std::pair< float,
float > > 
getTargetDimensionRange ()
 Method for retrieving the target dimension range vector.
void setPointRepresentation (const FeatureRepresentationConstPtr &feature_representation)
 Provide a pointer to the feature representation to use to convert features to k-D vectors.
FeatureRepresentationConstPtr const getPointRepresentation ()
 Get a pointer to the feature representation used when converting features into k-D vectors.
void compute ()
 The central method for inserting the feature set inside the pyramid and obtaining the complete pyramid.
bool isComputed ()
 Checks whether the pyramid histogram has been computed.
virtual void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset.
PointCloudConstPtr const getInputCloud ()
 Get a pointer to the input point cloud dataset.
void setIndices (const IndicesPtr &indices)
 Provide a pointer to the vector of indices that represents the input data.
void setIndices (const PointIndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data.
void setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)
 Set the indices for the points laying within an interest region of the point cloud.
IndicesPtr const getIndices ()
 Get a pointer to the vector of indices used.
const PointT & operator[] (size_t pos)
 Override PointCloud operator[] to shorten code.

Static Public Member Functions

static float comparePyramidFeatureHistograms (const PyramidFeatureHistogramPtr &pyramid_a, const PyramidFeatureHistogramPtr &pyramid_b)
 Static method for comparing two pyramid histograms that returns a floating point value between 0 and 1, representing the similiarity between the feature sets on which the two pyramid histograms are based.

Detailed Description

Class that compares two sets of features by using a multiscale representation of the features inside a pyramid.

Each level of the pyramid offers information about the similarity of the two feature sets.

Note:
Works with any Point/Feature type which has a PointRepresentation implementation
The only parameters it needs are the input dimension ranges and the output dimension ranges. The input dimension ranges represent the ranges in which each dimension of the feature vector lies. As described in the paper, a minimum inter-vector distance of sqrt(nr_dims)/2 is needed. As such, the target dimension range parameter is used in order to augment/reduce the range for each dimension in order to obtain the necessary minimal inter-vector distance and to add/subtract weight to/from certain dimensions of the feature vector.

Follows the algorithm presented in the publication: Grauman, K. & Darrell, T. The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features Tenth IEEE International Conference on Computer Vision ICCV05 Volume 1 October 2005

Author:
Alexandru-Eugen Ichim

Member Typedef Documentation

Definition at line 72 of file pyramid_feature_matching.h.

typedef pcl::PointCloud<PointT> pcl::PCLBase::PointCloud [inherited]

Definition at line 74 of file pcl_base.h.

Definition at line 76 of file pcl_base.h.

Definition at line 75 of file pcl_base.h.

Definition at line 79 of file pcl_base.h.

Definition at line 78 of file pcl_base.h.

typedef boost::shared_ptr<PyramidFeatureHistogram<PointFeature> > pcl::PyramidFeatureHistogram::Ptr

Definition at line 70 of file pyramid_feature_matching.h.

Definition at line 71 of file pyramid_feature_matching.h.


Constructor & Destructor Documentation

pcl::PyramidFeatureHistogram::PyramidFeatureHistogram ( )

Empty constructor that instantiates the feature representation variable.

Definition at line 126 of file pyramid_feature_matching.hpp.


Member Function Documentation

float pcl::PyramidFeatureHistogram::comparePyramidFeatureHistograms ( const PyramidFeatureHistogramPtr pyramid_a,
const PyramidFeatureHistogramPtr pyramid_b 
) [static]

Static method for comparing two pyramid histograms that returns a floating point value between 0 and 1, representing the similiarity between the feature sets on which the two pyramid histograms are based.

Parameters:
pyramid_aPointer to the first pyramid to be compared (needs to be computed already).
pyramid_bPointer to the second pyramid to be compared (needs to be computed already).

Definition at line 58 of file pyramid_feature_matching.hpp.

void pcl::PyramidFeatureHistogram::compute ( )

The central method for inserting the feature set inside the pyramid and obtaining the complete pyramid.

Definition at line 279 of file pyramid_feature_matching.hpp.

IndicesPtr const pcl::PCLBase::getIndices ( ) [inline, inherited]

Get a pointer to the vector of indices used.

Definition at line 171 of file pcl_base.h.

PointCloudConstPtr const pcl::PCLBase::getInputCloud ( ) [inline, inherited]

Get a pointer to the input point cloud dataset.

Definition at line 99 of file pcl_base.h.

std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram::getInputDimensionRange ( ) [inline]

Method for retrieving the input dimension range vector.

Definition at line 87 of file pyramid_feature_matching.h.

FeatureRepresentationConstPtr const pcl::PyramidFeatureHistogram::getPointRepresentation ( ) [inline]

Get a pointer to the feature representation used when converting features into k-D vectors.

Definition at line 108 of file pyramid_feature_matching.h.

std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram::getTargetDimensionRange ( ) [inline]

Method for retrieving the target dimension range vector.

Definition at line 98 of file pyramid_feature_matching.h.

bool pcl::PyramidFeatureHistogram::isComputed ( ) [inline]

Checks whether the pyramid histogram has been computed.

Definition at line 116 of file pyramid_feature_matching.h.

const PointT& pcl::PCLBase::operator[] ( size_t  pos) [inline, inherited]

Override PointCloud operator[] to shorten code.

Note:
this method can be called instead of (*input_)[(*indices_)[pos]] or input_->points[(*indices_)[pos]]
Parameters:
posposition in indices_ vector

Definition at line 178 of file pcl_base.h.

void pcl::PCLBase::setIndices ( const IndicesPtr indices) [inline, inherited]

Provide a pointer to the vector of indices that represents the input data.

Parameters:
indicesa pointer to the vector of indices that represents the input data.

Definition at line 105 of file pcl_base.h.

void pcl::PCLBase::setIndices ( const PointIndicesConstPtr indices) [inline, inherited]

Provide a pointer to the vector of indices that represents the input data.

Parameters:
indicesa pointer to the vector of indices that represents the input data.

Definition at line 116 of file pcl_base.h.

void pcl::PCLBase::setIndices ( size_t  row_start,
size_t  col_start,
size_t  nb_rows,
size_t  nb_cols 
) [inline, inherited]

Set the indices for the points laying within an interest region of the point cloud.

Note:
you shouldn't call this method on unorganized point clouds!
Parameters:
row_startthe offset on rows
col_startthe offset on columns
nb_rowsthe number of rows to be considered row_start included
nb_colsthe number of columns to be considered col_start included

Definition at line 132 of file pcl_base.h.

virtual void pcl::PCLBase::setInputCloud ( const PointCloudConstPtr cloud) [inline, virtual, inherited]

Provide a pointer to the input dataset.

Parameters:
cloudthe const boost shared pointer to a PointCloud message

Definition at line 95 of file pcl_base.h.

void pcl::PyramidFeatureHistogram::setInputDimensionRange ( std::vector< std::pair< float, float > > &  dimension_range_input) [inline]

Method for setting the input dimension range parameter.

Note:
Please check the PyramidHistogram class description for more details about this parameter.

Definition at line 82 of file pyramid_feature_matching.h.

void pcl::PyramidFeatureHistogram::setPointRepresentation ( const FeatureRepresentationConstPtr feature_representation) [inline]

Provide a pointer to the feature representation to use to convert features to k-D vectors.

Parameters:
feature_representationthe const boost shared pointer to a PointRepresentation

Definition at line 104 of file pyramid_feature_matching.h.

void pcl::PyramidFeatureHistogram::setTargetDimensionRange ( std::vector< std::pair< float, float > > &  dimension_range_target) [inline]

Method to set the target dimension range parameter.

Note:
Please check the PyramidHistogram class description for more details about this parameter.

Definition at line 93 of file pyramid_feature_matching.h.


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