Point Cloud Library (PCL)
1.3.1
|
RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud dataset containing points and intensity. More...
#include <pcl/features/rift.h>
Public Types | |
typedef pcl::PointCloud< PointInT > | PointCloudIn |
typedef Feature< PointInT, PointOutT >::PointCloudOut | PointCloudOut |
typedef pcl::PointCloud < GradientT > | PointCloudGradient |
typedef PointCloudGradient::Ptr | PointCloudGradientPtr |
typedef PointCloudGradient::ConstPtr | PointCloudGradientConstPtr |
typedef PCLBase< PointInT > | BaseClass |
typedef boost::shared_ptr < Feature< PointInT, PointOutT > > | Ptr |
typedef boost::shared_ptr < const Feature< PointInT, PointOutT > > | ConstPtr |
typedef pcl::search::Search < PointInT > | KdTree |
typedef pcl::search::Search < PointInT >::Ptr | KdTreePtr |
typedef PointCloudIn::Ptr | PointCloudInPtr |
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr |
typedef boost::function< int(size_t, double, std::vector< int > &, std::vector< float > &)> | SearchMethod |
typedef boost::function< int(const PointCloudIn &cloud, size_t index, double, std::vector < int > &, std::vector< float > &)> | SearchMethodSurface |
Public Member Functions | |
RIFTEstimation () | |
Empty constructor. | |
void | setInputGradient (const PointCloudGradientConstPtr &gradient) |
Provide a pointer to the input gradient data. | |
PointCloudGradientConstPtr | getInputGradient () |
Returns a shared pointer to the input gradient data. | |
void | setNrDistanceBins (size_t nr_distance_bins) |
Set the number of bins to use in the distance dimension of the RIFT descriptor. | |
int | getNrDistanceBins () |
Returns the number of bins in the distance dimension of the RIFT descriptor. | |
void | setNrGradientBins (size_t nr_gradient_bins) |
Set the number of bins to use in the gradient orientation dimension of the RIFT descriptor. | |
int | getNrGradientBins () |
Returns the number of bins in the gradient orientation dimension of the RIFT descriptor. | |
void | computeRIFT (const PointCloudIn &cloud, const PointCloudGradient &gradient, int p_idx, float radius, const std::vector< int > &indices, const std::vector< float > &squared_distances, Eigen::MatrixXf &rift_descriptor) |
Estimate the Rotation Invariant Feature Transform (RIFT) descriptor for a given point based on its spatial neighborhood of 3D points and the corresponding intensity gradient vector field. | |
void | setSearchSurface (const PointCloudInConstPtr &cloud) |
Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. | |
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 feature estimation. | |
double | getRadiusSearch () |
Get the sphere radius used for determining the neighbors. | |
void | compute (PointCloudOut &output) |
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () | |
int | searchForNeighbors (size_t index, double parameter, std::vector< int > &indices, std::vector< float > &distances) const |
Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface. | |
int | searchForNeighbors (const PointCloudIn &cloud, size_t index, double parameter, std::vector< int > &indices, std::vector< float > &distances) const |
Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface. |
RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud dataset containing points and intensity.
For more information about the RIFT descriptor, see:
Svetlana Lazebnik, Cordelia Schmid, and Jean Ponce. A sparse texture representation using local affine regions. In IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 27, pages 1265-1278, August 2005.
typedef PCLBase<PointInT> pcl::Feature::BaseClass [inherited] |
typedef boost::shared_ptr< const Feature<PointInT, PointOutT> > pcl::Feature::ConstPtr [inherited] |
Reimplemented in pcl::FeatureFromNormals.
typedef pcl::search::Search<PointInT> pcl::Feature::KdTree [inherited] |
typedef pcl::search::Search<PointInT>::Ptr pcl::Feature::KdTreePtr [inherited] |
typedef pcl::PointCloud<GradientT> pcl::RIFTEstimation::PointCloudGradient |
typedef pcl::PointCloud<PointInT> pcl::RIFTEstimation::PointCloudIn |
Reimplemented from pcl::Feature< PointInT, PointOutT >.
typedef PointCloudIn::ConstPtr pcl::Feature::PointCloudInConstPtr [inherited] |
typedef PointCloudIn::Ptr pcl::Feature::PointCloudInPtr [inherited] |
typedef Feature<PointInT, PointOutT>::PointCloudOut pcl::RIFTEstimation::PointCloudOut |
Reimplemented from pcl::Feature< PointInT, PointOutT >.
typedef boost::shared_ptr< Feature<PointInT, PointOutT> > pcl::Feature::Ptr [inherited] |
Reimplemented in pcl::FeatureFromNormals.
typedef boost::function<int (size_t, double, std::vector<int> &, std::vector<float> &)> pcl::Feature::SearchMethod [inherited] |
typedef boost::function<int (const PointCloudIn &cloud, size_t index, double, std::vector<int> &, std::vector<float> &)> pcl::Feature::SearchMethodSurface [inherited] |
pcl::RIFTEstimation::RIFTEstimation | ( | ) | [inline] |
void pcl::Feature::compute | ( | PointCloudOut & | output | ) | [inherited] |
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()
output | the resultant point cloud model dataset containing the estimated features |
void pcl::RIFTEstimation::computeRIFT | ( | const PointCloudIn & | cloud, |
const PointCloudGradient & | gradient, | ||
int | p_idx, | ||
float | radius, | ||
const std::vector< int > & | indices, | ||
const std::vector< float > & | squared_distances, | ||
Eigen::MatrixXf & | rift_descriptor | ||
) |
Estimate the Rotation Invariant Feature Transform (RIFT) descriptor for a given point based on its spatial neighborhood of 3D points and the corresponding intensity gradient vector field.
cloud | the dataset containing the Cartesian coordinates of the points |
gradient | the dataset containing the intensity gradient at each point in cloud |
p_idx | the index of the query point in cloud (i.e. the center of the neighborhood) |
radius | the radius of the RIFT feature |
indices | the indices of the points that comprise p_idx's neighborhood in cloud |
squared_distances | the squared distances from the query point to each point in the neighborhood |
rift_descriptor | the resultant RIFT descriptor |
Eigen::Map<Eigen::Vector3f> point (& (cloud.points[indices[idx]].x));
PointCloudGradientConstPtr pcl::RIFTEstimation::getInputGradient | ( | ) | [inline] |
int pcl::Feature::getKSearch | ( | ) | [inline, inherited] |
int pcl::RIFTEstimation::getNrDistanceBins | ( | ) | [inline] |
int pcl::RIFTEstimation::getNrGradientBins | ( | ) | [inline] |
double pcl::Feature::getRadiusSearch | ( | ) | [inline, inherited] |
KdTreePtr pcl::Feature::getSearchMethod | ( | ) | [inline, inherited] |
double pcl::Feature::getSearchParameter | ( | ) | [inline, inherited] |
PointCloudInConstPtr pcl::Feature::getSearchSurface | ( | ) | [inline, inherited] |
int pcl::Feature::searchForNeighbors | ( | size_t | index, |
double | parameter, | ||
std::vector< int > & | indices, | ||
std::vector< float > & | distances | ||
) | const [inline, inherited] |
Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.
index | the index of the query point |
parameter | the search parameter (either k or radius) |
indices | the resultant vector of indices representing the k-nearest neighbors |
distances | the resultant vector of distances representing the distances from the query point to the k-nearest neighbors |
int pcl::Feature::searchForNeighbors | ( | const PointCloudIn & | cloud, |
size_t | index, | ||
double | parameter, | ||
std::vector< int > & | indices, | ||
std::vector< float > & | distances | ||
) | const [inline, inherited] |
Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.
cloud | the query point cloud |
index | the index of the query point in cloud |
parameter | the search parameter (either k or radius) |
indices | the resultant vector of indices representing the k-nearest neighbors |
distances | the resultant vector of distances representing the distances from the query point to the k-nearest neighbors |
void pcl::RIFTEstimation::setInputGradient | ( | const PointCloudGradientConstPtr & | gradient | ) | [inline] |
void pcl::Feature::setKSearch | ( | int | k | ) | [inline, inherited] |
void pcl::RIFTEstimation::setNrDistanceBins | ( | size_t | nr_distance_bins | ) | [inline] |
void pcl::RIFTEstimation::setNrGradientBins | ( | size_t | nr_gradient_bins | ) | [inline] |
void pcl::Feature::setRadiusSearch | ( | double | radius | ) | [inline, inherited] |
void pcl::Feature::setSearchMethod | ( | const KdTreePtr & | tree | ) | [inline, inherited] |
void pcl::Feature::setSearchSurface | ( | const PointCloudInConstPtr & | cloud | ) | [inline, inherited] |
Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset.
This is optional, if this is not set, it will only use the data in the input cloud to estimate the features. This is useful when you only need to compute the features for a downsampled cloud.
cloud | a pointer to a PointCloud message |