Point Cloud Library (PCL)  1.11.1-dev
List of all members | Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
pcl::VoxelGridCovariance< PointT > Class Template Reference

A searchable voxel strucure containing the mean and covariance of the data. More...

#include <pcl/filters/voxel_grid_covariance.h>

+ Inheritance diagram for pcl::VoxelGridCovariance< PointT >:

Classes

struct  Leaf
 Simple structure to hold a centroid, covarince and the number of points in a leaf. More...
 

Public Types

using Ptr = shared_ptr< VoxelGrid< PointT > >
 
using ConstPtr = shared_ptr< const VoxelGrid< PointT > >
 
using LeafPtr = Leaf *
 Pointer to VoxelGridCovariance leaf structure. More...
 
using LeafConstPtr = const Leaf *
 Const pointer to VoxelGridCovariance leaf structure. More...
 
- Public Types inherited from pcl::VoxelGrid< PointT >
using Ptr = shared_ptr< VoxelGrid< PointT > >
 
using ConstPtr = shared_ptr< const VoxelGrid< PointT > >
 
- Public Types inherited from pcl::Filter< PointT >
using Ptr = shared_ptr< Filter< PointT > >
 
using ConstPtr = shared_ptr< const Filter< PointT > >
 
using PointCloud = pcl::PointCloud< PointT >
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
- Public Types inherited from pcl::PCLBase< PointT >
using PointCloud = pcl::PointCloud< PointT >
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using PointIndicesPtr = PointIndices::Ptr
 
using PointIndicesConstPtr = PointIndices::ConstPtr
 

Public Member Functions

 VoxelGridCovariance ()
 Constructor. More...
 
void setMinPointPerVoxel (int min_points_per_voxel)
 Set the minimum number of points required for a cell to be used (must be 3 or greater for covariance calculation). More...
 
int getMinPointPerVoxel ()
 Get the minimum number of points required for a cell to be used. More...
 
void setCovEigValueInflationRatio (double min_covar_eigvalue_mult)
 Set the minimum allowable ratio between eigenvalues to prevent singular covariance matrices. More...
 
double getCovEigValueInflationRatio ()
 Get the minimum allowable ratio between eigenvalues to prevent singular covariance matrices. More...
 
void filter (PointCloud &output, bool searchable=false)
 Filter cloud and initializes voxel structure. More...
 
void filter (bool searchable=false)
 Initializes voxel structure. More...
 
LeafConstPtr getLeaf (int index)
 Get the voxel containing point p. More...
 
LeafConstPtr getLeaf (PointT &p)
 Get the voxel containing point p. More...
 
LeafConstPtr getLeaf (Eigen::Vector3f &p)
 Get the voxel containing point p. More...
 
int getNeighborhoodAtPoint (const Eigen::Matrix< int, 3, Eigen::Dynamic > &relative_coordinates, const PointT &reference_point, std::vector< LeafConstPtr > &neighbors) const
 Get the voxels surrounding point p designated by #relative_coordinates. More...
 
int getNeighborhoodAtPoint (const PointT &reference_point, std::vector< LeafConstPtr > &neighbors) const
 Get the voxels surrounding point p, not including the voxel containing point p. More...
 
int getVoxelAtPoint (const PointT &reference_point, std::vector< LeafConstPtr > &neighbors) const
 Get the voxel at p. More...
 
int getFaceNeighborsAtPoint (const PointT &reference_point, std::vector< LeafConstPtr > &neighbors) const
 Get the voxel at p and its facing voxels (up to 7 voxels). More...
 
int getAllNeighborsAtPoint (const PointT &reference_point, std::vector< LeafConstPtr > &neighbors) const
 Get all 3x3x3 neighbor voxels of p (up to 27 voxels). More...
 
const std::map< std::size_t, Leaf > & getLeaves ()
 Get the leaf structure map. More...
 
PointCloudPtr getCentroids ()
 Get a pointcloud containing the voxel centroids. More...
 
void getDisplayCloud (pcl::PointCloud< PointXYZ > &cell_cloud)
 Get a cloud to visualize each voxels normal distribution. More...
 
int nearestKSearch (const PointT &point, int k, std::vector< LeafConstPtr > &k_leaves, std::vector< float > &k_sqr_distances) const
 Search for the k-nearest occupied voxels for the given query point. More...
 
int nearestKSearch (const PointCloud &cloud, int index, int k, std::vector< LeafConstPtr > &k_leaves, std::vector< float > &k_sqr_distances) const
 Search for the k-nearest occupied voxels for the given query point. More...
 
int radiusSearch (const PointT &point, double radius, std::vector< LeafConstPtr > &k_leaves, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
 Search for all the nearest occupied voxels of the query point in a given radius. More...
 
int radiusSearch (const PointCloud &cloud, int index, double radius, std::vector< LeafConstPtr > &k_leaves, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const
 Search for all the nearest occupied voxels of the query point in a given radius. More...
 
- Public Member Functions inherited from pcl::VoxelGrid< PointT >
 VoxelGrid ()
 Empty constructor. More...
 
 ~VoxelGrid ()
 Destructor. More...
 
void setLeafSize (const Eigen::Vector4f &leaf_size)
 Set the voxel grid leaf size. More...
 
void setLeafSize (float lx, float ly, float lz)
 Set the voxel grid leaf size. More...
 
Eigen::Vector3f getLeafSize () const
 Get the voxel grid leaf size. More...
 
void setDownsampleAllData (bool downsample)
 Set to true if all fields need to be downsampled, or false if just XYZ. More...
 
bool getDownsampleAllData () const
 Get the state of the internal downsampling parameter (true if all fields need to be downsampled, false if just XYZ). More...
 
void setMinimumPointsNumberPerVoxel (unsigned int min_points_per_voxel)
 Set the minimum number of points required for a voxel to be used. More...
 
unsigned int getMinimumPointsNumberPerVoxel () const
 Return the minimum number of points required for a voxel to be used. More...
 
void setSaveLeafLayout (bool save_leaf_layout)
 Set to true if leaf layout information needs to be saved for later access. More...
 
bool getSaveLeafLayout () const
 Returns true if leaf layout information will to be saved for later access. More...
 
Eigen::Vector3i getMinBoxCoordinates () const
 Get the minimum coordinates of the bounding box (after filtering is performed). More...
 
Eigen::Vector3i getMaxBoxCoordinates () const
 Get the minimum coordinates of the bounding box (after filtering is performed). More...
 
Eigen::Vector3i getNrDivisions () const
 Get the number of divisions along all 3 axes (after filtering is performed). More...
 
Eigen::Vector3i getDivisionMultiplier () const
 Get the multipliers to be applied to the grid coordinates in order to find the centroid index (after filtering is performed). More...
 
int getCentroidIndex (const PointT &p) const
 Returns the index in the resulting downsampled cloud of the specified point. More...
 
std::vector< int > getNeighborCentroidIndices (const PointT &reference_point, const Eigen::MatrixXi &relative_coordinates) const
 Returns the indices in the resulting downsampled cloud of the points at the specified grid coordinates, relative to the grid coordinates of the specified point (or -1 if the cell was empty/out of bounds). More...
 
std::vector< int > getLeafLayout () const
 Returns the layout of the leafs for fast access to cells relative to current position. More...
 
Eigen::Vector3i getGridCoordinates (float x, float y, float z) const
 Returns the corresponding (i,j,k) coordinates in the grid of point (x,y,z). More...
 
int getCentroidIndexAt (const Eigen::Vector3i &ijk) const
 Returns the index in the downsampled cloud corresponding to a given set of coordinates. More...
 
void setFilterFieldName (const std::string &field_name)
 Provide the name of the field to be used for filtering data. More...
 
const std::string getFilterFieldName () const
 Get the name of the field used for filtering. More...
 
void setFilterLimits (const double &limit_min, const double &limit_max)
 Set the field filter limits. More...
 
void getFilterLimits (double &limit_min, double &limit_max) const
 Get the field filter limits (min/max) set by the user. More...
 
void setFilterLimitsNegative (const bool limit_negative)
 Set to true if we want to return the data outside the interval specified by setFilterLimits (min, max). More...
 
void getFilterLimitsNegative (bool &limit_negative) const
 Get whether the data outside the interval (min/max) is to be returned (true) or inside (false). More...
 
bool getFilterLimitsNegative () const
 Get whether the data outside the interval (min/max) is to be returned (true) or inside (false). More...
 
- Public Member Functions inherited from pcl::Filter< PointT >
 Filter (bool extract_removed_indices=false)
 Empty constructor. More...
 
const IndicesConstPtr getRemovedIndices () const
 Get the point indices being removed. More...
 
void getRemovedIndices (PointIndices &pi)
 Get the point indices being removed. More...
 
void filter (PointCloud &output)
 Calls the filtering method and returns the filtered dataset in output. More...
 
- Public Member Functions inherited from pcl::PCLBase< PointT >
 PCLBase ()
 Empty constructor. More...
 
 PCLBase (const PCLBase &base)
 Copy constructor. More...
 
virtual ~PCLBase ()=default
 Destructor. More...
 
virtual void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset. More...
 
const PointCloudConstPtr getInputCloud () const
 Get a pointer to the input point cloud dataset. More...
 
virtual void setIndices (const IndicesPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (const IndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (const PointIndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
 Set the indices for the points laying within an interest region of the point cloud. More...
 
IndicesPtr getIndices ()
 Get a pointer to the vector of indices used. More...
 
const IndicesConstPtr getIndices () const
 Get a pointer to the vector of indices used. More...
 
const PointToperator[] (std::size_t pos) const
 Override PointCloud operator[] to shorten code. More...
 

Protected Types

using FieldList = typename pcl::traits::fieldList< PointT >::type
 
using PointCloud = typename Filter< PointT >::PointCloud
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
- Protected Types inherited from pcl::VoxelGrid< PointT >
using PointCloud = typename Filter< PointT >::PointCloud
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using FieldList = typename pcl::traits::fieldList< PointT >::type
 

Protected Member Functions

void applyFilter (PointCloud &output) override
 Filter cloud and initializes voxel structure. More...
 
- Protected Member Functions inherited from pcl::Filter< PointT >
const std::string & getClassName () const
 Get a string representation of the name of this class. More...
 
- Protected Member Functions inherited from pcl::PCLBase< PointT >
bool initCompute ()
 This method should get called before starting the actual computation. More...
 
bool deinitCompute ()
 This method should get called after finishing the actual computation. More...
 

Protected Attributes

bool searchable_
 Flag to determine if voxel structure is searchable. More...
 
int min_points_per_voxel_
 Minimum points contained with in a voxel to allow it to be usable. More...
 
double min_covar_eigvalue_mult_
 Minimum allowable ratio between eigenvalues to prevent singular covariance matrices. More...
 
std::map< std::size_t, Leafleaves_
 Voxel structure containing all leaf nodes (includes voxels with less than a sufficient number of points). More...
 
PointCloudPtr voxel_centroids_
 Point cloud containing centroids of voxels containing atleast minimum number of points. More...
 
std::vector< int > voxel_centroids_leaf_indices_
 Indices of leaf structurs associated with each point in voxel_centroids_ (used for searching). More...
 
KdTreeFLANN< PointTkdtree_
 KdTree generated using voxel_centroids_ (used for searching). More...
 
- Protected Attributes inherited from pcl::VoxelGrid< PointT >
Eigen::Vector4f leaf_size_
 The size of a leaf. More...
 
Eigen::Array4f inverse_leaf_size_
 Internal leaf sizes stored as 1/leaf_size_ for efficiency reasons. More...
 
bool downsample_all_data_
 Set to true if all fields need to be downsampled, or false if just XYZ. More...
 
bool save_leaf_layout_
 Set to true if leaf layout information needs to be saved in leaf_layout_. More...
 
std::vector< int > leaf_layout_
 The leaf layout information for fast access to cells relative to current position. More...
 
Eigen::Vector4i min_b_
 The minimum and maximum bin coordinates, the number of divisions, and the division multiplier. More...
 
Eigen::Vector4i max_b_
 
Eigen::Vector4i div_b_
 
Eigen::Vector4i divb_mul_
 
std::string filter_field_name_
 The desired user filter field name. More...
 
double filter_limit_min_
 The minimum allowed filter value a point will be considered from. More...
 
double filter_limit_max_
 The maximum allowed filter value a point will be considered from. More...
 
bool filter_limit_negative_
 Set to true if we want to return the data outside (filter_limit_min_;filter_limit_max_). More...
 
unsigned int min_points_per_voxel_
 Minimum number of points per voxel for the centroid to be computed. More...
 
- Protected Attributes inherited from pcl::Filter< PointT >
IndicesPtr removed_indices_
 Indices of the points that are removed. More...
 
std::string filter_name_
 The filter name. More...
 
bool extract_removed_indices_
 Set to true if we want to return the indices of the removed points. More...
 
- Protected Attributes inherited from pcl::PCLBase< PointT >
PointCloudConstPtr input_
 The input point cloud dataset. More...
 
IndicesPtr indices_
 A pointer to the vector of point indices to use. More...
 
bool use_indices_
 Set to true if point indices are used. More...
 
bool fake_indices_
 If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...
 

Detailed Description

template<typename PointT>
class pcl::VoxelGridCovariance< PointT >

A searchable voxel strucure containing the mean and covariance of the data.

Note
For more information please see Magnusson, M. (2009). The Three-Dimensional Normal-Distributions Transform — an Efficient Representation for Registration, Surface Analysis, and Loop Detection. PhD thesis, Orebro University. Orebro Studies in Technology 36
Author
Brian Okorn (Space and Naval Warfare Systems Center Pacific)

Definition at line 55 of file voxel_grid_covariance.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::ConstPtr = shared_ptr<const VoxelGrid<PointT> >

Definition at line 86 of file voxel_grid_covariance.h.

◆ FieldList

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::FieldList = typename pcl::traits::fieldList<PointT>::type
protected

Definition at line 78 of file voxel_grid_covariance.h.

◆ LeafConstPtr

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::LeafConstPtr = const Leaf *

Const pointer to VoxelGridCovariance leaf structure.

Definition at line 191 of file voxel_grid_covariance.h.

◆ LeafPtr

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::LeafPtr = Leaf *

Pointer to VoxelGridCovariance leaf structure.

Definition at line 188 of file voxel_grid_covariance.h.

◆ PointCloud

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::PointCloud = typename Filter<PointT>::PointCloud
protected

Definition at line 79 of file voxel_grid_covariance.h.

◆ PointCloudConstPtr

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr
protected

Definition at line 81 of file voxel_grid_covariance.h.

◆ PointCloudPtr

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::PointCloudPtr = typename PointCloud::Ptr
protected

Definition at line 80 of file voxel_grid_covariance.h.

◆ Ptr

template<typename PointT >
using pcl::VoxelGridCovariance< PointT >::Ptr = shared_ptr<VoxelGrid<PointT> >

Definition at line 85 of file voxel_grid_covariance.h.

Constructor & Destructor Documentation

◆ VoxelGridCovariance()

template<typename PointT >
pcl::VoxelGridCovariance< PointT >::VoxelGridCovariance ( )
inline

Constructor.

Sets leaf_size_ to 0 and searchable_ to false.

Definition at line 198 of file voxel_grid_covariance.h.

Member Function Documentation

◆ applyFilter()

template<typename PointT >
void pcl::VoxelGridCovariance< PointT >::applyFilter ( PointCloud output)
overrideprotectedvirtual

Filter cloud and initializes voxel structure.

Parameters
[out]outputcloud containing centroids of voxels containing a sufficient number of points

Reimplemented from pcl::VoxelGrid< PointT >.

Definition at line 53 of file voxel_grid_covariance.hpp.

Referenced by pcl::VoxelGridCovariance< PointTarget >::filter().

◆ filter() [1/2]

template<typename PointT >
void pcl::VoxelGridCovariance< PointT >::filter ( bool  searchable = false)
inline

Initializes voxel structure.

Parameters
[in]searchableflag if voxel structure is searchable, if true then kdtree is built

Definition at line 281 of file voxel_grid_covariance.h.

◆ filter() [2/2]

template<typename PointT >
void pcl::VoxelGridCovariance< PointT >::filter ( PointCloud output,
bool  searchable = false 
)
inline

Filter cloud and initializes voxel structure.

Parameters
[out]outputcloud containing centroids of voxels containing a sufficient number of points
[in]searchableflag if voxel structure is searchable, if true then kdtree is built

Definition at line 263 of file voxel_grid_covariance.h.

Referenced by pcl::NormalDistributionsTransform< PointSource, PointTarget >::init().

◆ getAllNeighborsAtPoint()

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::getAllNeighborsAtPoint ( const PointT reference_point,
std::vector< LeafConstPtr > &  neighbors 
) const

Get all 3x3x3 neighbor voxels of p (up to 27 voxels).

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]reference_pointthe point to get the leaf structure at
[out]neighbors
Returns
number of neighbors found (up to 27)

Definition at line 433 of file voxel_grid_covariance.hpp.

◆ getCentroids()

template<typename PointT >
PointCloudPtr pcl::VoxelGridCovariance< PointT >::getCentroids ( )
inline

Get a pointcloud containing the voxel centroids.

Note
Only voxels containing a sufficient number of points are used.
Returns
a map contataining all leaves

Definition at line 423 of file voxel_grid_covariance.h.

◆ getCovEigValueInflationRatio()

template<typename PointT >
double pcl::VoxelGridCovariance< PointT >::getCovEigValueInflationRatio ( )
inline

Get the minimum allowable ratio between eigenvalues to prevent singular covariance matrices.

Returns
the minimum allowable ratio between eigenvalues

Definition at line 253 of file voxel_grid_covariance.h.

◆ getDisplayCloud()

template<typename PointT >
void pcl::VoxelGridCovariance< PointT >::getDisplayCloud ( pcl::PointCloud< PointXYZ > &  cell_cloud)

Get a cloud to visualize each voxels normal distribution.

Parameters
[out]cell_clouda cloud created by sampling the normal distributions of each voxel

Definition at line 444 of file voxel_grid_covariance.hpp.

◆ getFaceNeighborsAtPoint()

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::getFaceNeighborsAtPoint ( const PointT reference_point,
std::vector< LeafConstPtr > &  neighbors 
) const

Get the voxel at p and its facing voxels (up to 7 voxels).

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]reference_pointthe point to get the leaf structure at
[out]neighbors
Returns
number of neighbors found (up to 7)

Definition at line 417 of file voxel_grid_covariance.hpp.

◆ getLeaf() [1/3]

template<typename PointT >
LeafConstPtr pcl::VoxelGridCovariance< PointT >::getLeaf ( Eigen::Vector3f &  p)
inline

Get the voxel containing point p.

Parameters
[in]pthe point to get the leaf structure at
Returns
const pointer to leaf structure

Definition at line 341 of file voxel_grid_covariance.h.

◆ getLeaf() [2/3]

template<typename PointT >
LeafConstPtr pcl::VoxelGridCovariance< PointT >::getLeaf ( int  index)
inline

Get the voxel containing point p.

Parameters
[in]indexthe index of the leaf structure node
Returns
const pointer to leaf structure

Definition at line 299 of file voxel_grid_covariance.h.

◆ getLeaf() [3/3]

template<typename PointT >
LeafConstPtr pcl::VoxelGridCovariance< PointT >::getLeaf ( PointT p)
inline

Get the voxel containing point p.

Parameters
[in]pthe point to get the leaf structure at
Returns
const pointer to leaf structure

Definition at line 315 of file voxel_grid_covariance.h.

◆ getLeaves()

template<typename PointT >
const std::map<std::size_t, Leaf>& pcl::VoxelGridCovariance< PointT >::getLeaves ( )
inline

Get the leaf structure map.

Returns
a map contataining all leaves

Definition at line 413 of file voxel_grid_covariance.h.

◆ getMinPointPerVoxel()

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::getMinPointPerVoxel ( )
inline

Get the minimum number of points required for a cell to be used.

Returns
the minimum number of points for required for a voxel to be used

Definition at line 235 of file voxel_grid_covariance.h.

◆ getNeighborhoodAtPoint() [1/2]

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::getNeighborhoodAtPoint ( const Eigen::Matrix< int, 3, Eigen::Dynamic > &  relative_coordinates,
const PointT reference_point,
std::vector< LeafConstPtr > &  neighbors 
) const

Get the voxels surrounding point p designated by #relative_coordinates.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]relative_coordinates3xN matrix that represents relative coordinates of N neighboring voxels with respect to the center voxel
[in]reference_pointthe point to get the leaf structure at
[out]neighbors
Returns
number of neighbors found

Definition at line 370 of file voxel_grid_covariance.hpp.

◆ getNeighborhoodAtPoint() [2/2]

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::getNeighborhoodAtPoint ( const PointT reference_point,
std::vector< LeafConstPtr > &  neighbors 
) const

Get the voxels surrounding point p, not including the voxel containing point p.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]reference_pointthe point to get the leaf structure at
[out]neighbors
Returns
number of neighbors found (up to 26)

Definition at line 402 of file voxel_grid_covariance.hpp.

◆ getVoxelAtPoint()

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::getVoxelAtPoint ( const PointT reference_point,
std::vector< LeafConstPtr > &  neighbors 
) const

Get the voxel at p.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]reference_pointthe point to get the leaf structure at
[out]neighbors
Returns
number of neighbors found (up to 1)

Definition at line 410 of file voxel_grid_covariance.hpp.

◆ nearestKSearch() [1/2]

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::nearestKSearch ( const PointCloud cloud,
int  index,
int  k,
std::vector< LeafConstPtr > &  k_leaves,
std::vector< float > &  k_sqr_distances 
) const
inline

Search for the k-nearest occupied voxels for the given query point.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]cloudthe given query point
[in]indexthe index
[in]kthe number of neighbors to search for
[out]k_leavesthe resultant leaves of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
Returns
number of neighbors found

Definition at line 484 of file voxel_grid_covariance.h.

◆ nearestKSearch() [2/2]

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::nearestKSearch ( const PointT point,
int  k,
std::vector< LeafConstPtr > &  k_leaves,
std::vector< float > &  k_sqr_distances 
) const
inline

Search for the k-nearest occupied voxels for the given query point.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]pointthe given query point
[in]kthe number of neighbors to search for
[out]k_leavesthe resultant leaves of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
Returns
number of neighbors found

Definition at line 444 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::nearestKSearch().

◆ radiusSearch() [1/2]

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::radiusSearch ( const PointCloud cloud,
int  index,
double  radius,
std::vector< LeafConstPtr > &  k_leaves,
std::vector< float > &  k_sqr_distances,
unsigned int  max_nn = 0 
) const
inline

Search for all the nearest occupied voxels of the query point in a given radius.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]cloudthe given query point
[in]indexa valid index in cloud representing a valid (i.e., finite) query point
[in]radiusthe radius of the sphere bounding all of p_q's neighbors
[out]k_leavesthe resultant leaves of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
[in]max_nn
Returns
number of neighbors found

Definition at line 544 of file voxel_grid_covariance.h.

◆ radiusSearch() [2/2]

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::radiusSearch ( const PointT point,
double  radius,
std::vector< LeafConstPtr > &  k_leaves,
std::vector< float > &  k_sqr_distances,
unsigned int  max_nn = 0 
) const
inline

Search for all the nearest occupied voxels of the query point in a given radius.

Note
Only voxels containing a sufficient number of points are used.
Parameters
[in]pointthe given query point
[in]radiusthe radius of the sphere bounding all of p_q's neighbors
[out]k_leavesthe resultant leaves of the neighboring points
[out]k_sqr_distancesthe resultant squared distances to the neighboring points
[in]max_nn
Returns
number of neighbors found

Definition at line 503 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::radiusSearch().

◆ setCovEigValueInflationRatio()

template<typename PointT >
void pcl::VoxelGridCovariance< PointT >::setCovEigValueInflationRatio ( double  min_covar_eigvalue_mult)
inline

Set the minimum allowable ratio between eigenvalues to prevent singular covariance matrices.

Parameters
[in]min_covar_eigvalue_multthe minimum allowable ratio between eigenvalues

Definition at line 244 of file voxel_grid_covariance.h.

◆ setMinPointPerVoxel()

template<typename PointT >
void pcl::VoxelGridCovariance< PointT >::setMinPointPerVoxel ( int  min_points_per_voxel)
inline

Set the minimum number of points required for a cell to be used (must be 3 or greater for covariance calculation).

Parameters
[in]min_points_per_voxelthe minimum number of points for required for a voxel to be used

Definition at line 218 of file voxel_grid_covariance.h.

Member Data Documentation

◆ kdtree_

template<typename PointT >
KdTreeFLANN<PointT> pcl::VoxelGridCovariance< PointT >::kdtree_
protected

◆ leaves_

template<typename PointT >
std::map<std::size_t, Leaf> pcl::VoxelGridCovariance< PointT >::leaves_
protected

Voxel structure containing all leaf nodes (includes voxels with less than a sufficient number of points).

Definition at line 570 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::getLeaf(), pcl::VoxelGridCovariance< PointTarget >::getLeaves(), pcl::VoxelGridCovariance< PointTarget >::nearestKSearch(), and pcl::VoxelGridCovariance< PointTarget >::radiusSearch().

◆ min_covar_eigvalue_mult_

template<typename PointT >
double pcl::VoxelGridCovariance< PointT >::min_covar_eigvalue_mult_
protected

Minimum allowable ratio between eigenvalues to prevent singular covariance matrices.

Definition at line 567 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::getCovEigValueInflationRatio(), and pcl::VoxelGridCovariance< PointTarget >::setCovEigValueInflationRatio().

◆ min_points_per_voxel_

template<typename PointT >
int pcl::VoxelGridCovariance< PointT >::min_points_per_voxel_
protected

Minimum points contained with in a voxel to allow it to be usable.

Definition at line 564 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::getMinPointPerVoxel(), and pcl::VoxelGridCovariance< PointTarget >::setMinPointPerVoxel().

◆ searchable_

template<typename PointT >
bool pcl::VoxelGridCovariance< PointT >::searchable_
protected

◆ voxel_centroids_

template<typename PointT >
PointCloudPtr pcl::VoxelGridCovariance< PointT >::voxel_centroids_
protected

Point cloud containing centroids of voxels containing atleast minimum number of points.

Definition at line 573 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::filter(), and pcl::VoxelGridCovariance< PointTarget >::getCentroids().

◆ voxel_centroids_leaf_indices_

template<typename PointT >
std::vector<int> pcl::VoxelGridCovariance< PointT >::voxel_centroids_leaf_indices_
protected

Indices of leaf structurs associated with each point in voxel_centroids_ (used for searching).

Definition at line 576 of file voxel_grid_covariance.h.

Referenced by pcl::VoxelGridCovariance< PointTarget >::nearestKSearch(), and pcl::VoxelGridCovariance< PointTarget >::radiusSearch().


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