Point Cloud Library (PCL)  1.6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Types | Public Member Functions
pcl::UniformSampling< PointInT > Class Template Reference

UniformSampling assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More...

#include <pcl/keypoints/uniform_sampling.h>

Inheritance diagram for pcl::UniformSampling< PointInT >:
Inheritance graph
[legend]
Collaboration diagram for pcl::UniformSampling< PointInT >:
Collaboration graph
[legend]

List of all members.

Classes

struct  Leaf
 Simple structure to hold an nD centroid and the number of points in a leaf.

Public Types

typedef PCLBase< PointInT > BaseClass
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(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
typedef pcl::PointCloud< PointInT > PointCloud
typedef PointCloud::Ptr PointCloudPtr
typedef PointCloud::ConstPtr PointCloudConstPtr
typedef PointIndices::Ptr PointIndicesPtr
typedef PointIndices::ConstPtr PointIndicesConstPtr

Public Member Functions

 UniformSampling ()
 Empty constructor.
virtual ~UniformSampling ()
 Destructor.
virtual void setRadiusSearch (double radius)
 Set the 3D grid leaf size.
virtual 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.
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) const
 Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.
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 IndicesConstPtr &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 PointInT & operator[] (size_t pos)
 Override PointCloud operator[] to shorten code.

Detailed Description

template<typename PointInT>
class pcl::UniformSampling< PointInT >

UniformSampling assembles a local 3D grid over a given PointCloud, and downsamples + filters the data.

The UniformSampling class creates a *3D voxel grid* (think about a voxel grid as a set of tiny 3D boxes in space) over the input point cloud data. Then, in each *voxel* (i.e., 3D box), all the points present will be approximated (i.e., *downsampled*) with their centroid. This approach is a bit slower than approximating them with the center of the voxel, but it represents the underlying surface more accurately.

Author:
Radu Bogdan Rusu

Definition at line 61 of file uniform_sampling.h.


Member Typedef Documentation

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

Definition at line 61 of file keypoint.h.

typedef pcl::search::Search<PointInT> pcl::Keypoint< PointInT, int >::KdTree [inherited]

Definition at line 62 of file keypoint.h.

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

Definition at line 63 of file keypoint.h.

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

Definition at line 74 of file pcl_base.h.

typedef PointCloud::ConstPtr pcl::PCLBase< PointInT >::PointCloudConstPtr [inherited]
typedef PointCloudIn::ConstPtr pcl::Keypoint< PointInT, int >::PointCloudInConstPtr [inherited]

Definition at line 66 of file keypoint.h.

typedef PointCloudIn::Ptr pcl::Keypoint< PointInT, int >::PointCloudInPtr [inherited]

Definition at line 65 of file keypoint.h.

typedef PointCloud::Ptr pcl::PCLBase< PointInT >::PointCloudPtr [inherited]

Reimplemented in pcl::OrganizedFastMesh< PointInT >.

Definition at line 75 of file pcl_base.h.

typedef PointIndices::ConstPtr pcl::PCLBase< PointInT >::PointIndicesConstPtr [inherited]

Definition at line 79 of file pcl_base.h.

typedef PointIndices::Ptr pcl::PCLBase< PointInT >::PointIndicesPtr [inherited]

Definition at line 78 of file pcl_base.h.

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

Definition at line 68 of file keypoint.h.

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

Definition at line 69 of file keypoint.h.


Constructor & Destructor Documentation

template<typename PointInT >
pcl::UniformSampling< PointInT >::UniformSampling ( ) [inline]

Empty constructor.

Definition at line 74 of file uniform_sampling.h.

template<typename PointInT >
virtual pcl::UniformSampling< PointInT >::~UniformSampling ( ) [inline, virtual]

Destructor.

Definition at line 87 of file uniform_sampling.h.


Member Function Documentation

void pcl::Keypoint< PointInT, int >::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
IndicesPtr const pcl::PCLBase< PointInT >::getIndices ( ) [inline, inherited]

Get a pointer to the vector of indices used.

Definition at line 190 of file pcl_base.h.

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

Get a pointer to the input point cloud dataset.

Definition at line 107 of file pcl_base.h.

int pcl::Keypoint< PointInT, int >::getKSearch ( ) [inline, inherited]

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

Definition at line 117 of file keypoint.h.

double pcl::Keypoint< PointInT, int >::getRadiusSearch ( ) [inline, inherited]

Get the sphere radius used for determining the neighbors.

Definition at line 128 of file keypoint.h.

KdTreePtr pcl::Keypoint< PointInT, int >::getSearchMethod ( ) [inline, inherited]

Get a pointer to the search method used.

Definition at line 103 of file keypoint.h.

double pcl::Keypoint< PointInT, int >::getSearchParameter ( ) [inline, inherited]

Get the internal search parameter.

Definition at line 107 of file keypoint.h.

PointCloudInConstPtr pcl::Keypoint< PointInT, int >::getSearchSurface ( ) [inline, inherited]

Get a pointer to the surface point cloud dataset.

Definition at line 93 of file keypoint.h.

const PointInT & pcl::PCLBase< PointInT >::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 197 of file pcl_base.h.

int pcl::Keypoint< PointInT, int >::searchForNeighbors ( int  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.

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 146 of file keypoint.h.

void pcl::PCLBase< PointInT >::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 113 of file pcl_base.h.

void pcl::PCLBase< PointInT >::setIndices ( const IndicesConstPtr 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 124 of file pcl_base.h.

void pcl::PCLBase< PointInT >::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 135 of file pcl_base.h.

void pcl::PCLBase< PointInT >::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 151 of file pcl_base.h.

virtual void pcl::PCLBase< PointInT >::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 103 of file pcl_base.h.

void pcl::Keypoint< PointInT, int >::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 113 of file keypoint.h.

template<typename PointInT >
virtual void pcl::UniformSampling< PointInT >::setRadiusSearch ( double  radius) [inline, virtual]

Set the 3D grid leaf size.

Parameters:
radiusthe 3D grid leaf size

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

Definition at line 96 of file uniform_sampling.h.

void pcl::Keypoint< PointInT, int >::setSearchMethod ( const KdTreePtr tree) [inline, inherited]

Provide a pointer to the search object.

Parameters:
treea pointer to the spatial search object.

Definition at line 99 of file keypoint.h.

virtual void pcl::Keypoint< PointInT, int >::setSearchSurface ( const PointCloudInConstPtr cloud) [inline, virtual, 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 89 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