A searchable voxel strucure containing the mean and covariance of the data. More...
#include <pcl/filters/voxel_grid_covariance.h>
Classes | |
struct | Leaf |
Simple structure to hold a centroid, covarince and the number of points in a leaf. More... |
|
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 PointT & | operator[] (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, Leaf > | leaves_ |
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< PointT > | kdtree_ |
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... |
|
A searchable voxel strucure containing the mean and covariance of the data.
Definition at line 55 of file voxel_grid_covariance.h.
using pcl::VoxelGridCovariance< PointT >::ConstPtr = shared_ptr<const VoxelGrid<PointT> > |
Definition at line 86 of file voxel_grid_covariance.h.
| protected |
Definition at line 78 of file voxel_grid_covariance.h.
using pcl::VoxelGridCovariance< PointT >::LeafConstPtr = const Leaf * |
Const pointer to VoxelGridCovariance leaf structure.
Definition at line 191 of file voxel_grid_covariance.h.
using pcl::VoxelGridCovariance< PointT >::LeafPtr = Leaf * |
Pointer to VoxelGridCovariance leaf structure.
Definition at line 188 of file voxel_grid_covariance.h.
| protected |
Definition at line 79 of file voxel_grid_covariance.h.
| protected |
Definition at line 81 of file voxel_grid_covariance.h.
| protected |
Definition at line 80 of file voxel_grid_covariance.h.
using pcl::VoxelGridCovariance< PointT >::Ptr = shared_ptr<VoxelGrid<PointT> > |
Definition at line 85 of file voxel_grid_covariance.h.
| inline |
Constructor.
Sets leaf_size_ to 0 and searchable_ to false.
Definition at line 198 of file voxel_grid_covariance.h.
| overrideprotectedvirtual |
Filter cloud and initializes voxel structure.
[out] | output | cloud 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().
| inline |
Initializes voxel structure.
[in] | searchable | flag if voxel structure is searchable, if true then kdtree is built |
Definition at line 281 of file voxel_grid_covariance.h.
| inline |
Filter cloud and initializes voxel structure.
[out] | output | cloud containing centroids of voxels containing a sufficient number of points |
[in] | searchable | flag 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().
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).
[in] | reference_point | the point to get the leaf structure at |
[out] | neighbors |
Definition at line 434 of file voxel_grid_covariance.hpp.
| inline |
Get a pointcloud containing the voxel centroids.
Definition at line 423 of file voxel_grid_covariance.h.
| inline |
Get the minimum allowable ratio between eigenvalues to prevent singular covariance matrices.
Definition at line 253 of file voxel_grid_covariance.h.
void pcl::VoxelGridCovariance< PointT >::getDisplayCloud | ( | pcl::PointCloud< PointXYZ > & | cell_cloud | ) |
Get a cloud to visualize each voxels normal distribution.
[out] | cell_cloud | a cloud created by sampling the normal distributions of each voxel |
Definition at line 445 of file voxel_grid_covariance.hpp.
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).
[in] | reference_point | the point to get the leaf structure at |
[out] | neighbors |
Definition at line 418 of file voxel_grid_covariance.hpp.
| inline |
Get the voxel containing point p.
[in] | p | the point to get the leaf structure at |
Definition at line 341 of file voxel_grid_covariance.h.
| inline |
Get the voxel containing point p.
[in] | index | the index of the leaf structure node |
Definition at line 299 of file voxel_grid_covariance.h.
| inline |
Get the voxel containing point p.
[in] | p | the point to get the leaf structure at |
Definition at line 315 of file voxel_grid_covariance.h.
| inline |
Get the leaf structure map.
Definition at line 413 of file voxel_grid_covariance.h.
| inline |
Get the minimum number of points required for a cell to be used.
Definition at line 235 of file voxel_grid_covariance.h.
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.
[in] | relative_coordinates | 3xN matrix that represents relative coordinates of N neighboring voxels with respect to the center voxel |
[in] | reference_point | the point to get the leaf structure at |
[out] | neighbors |
Definition at line 371 of file voxel_grid_covariance.hpp.
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.
[in] | reference_point | the point to get the leaf structure at |
[out] | neighbors |
Definition at line 403 of file voxel_grid_covariance.hpp.
int pcl::VoxelGridCovariance< PointT >::getVoxelAtPoint | ( | const PointT & | reference_point, |
std::vector< LeafConstPtr > & | neighbors | ||
) | const |
Get the voxel at p.
[in] | reference_point | the point to get the leaf structure at |
[out] | neighbors |
Definition at line 411 of file voxel_grid_covariance.hpp.
| inline |
Search for the k-nearest occupied voxels for the given query point.
[in] | cloud | the given query point |
[in] | index | the index |
[in] | k | the number of neighbors to search for |
[out] | k_leaves | the resultant leaves of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
Definition at line 484 of file voxel_grid_covariance.h.
| inline |
Search for the k-nearest occupied voxels for the given query point.
[in] | point | the given query point |
[in] | k | the number of neighbors to search for |
[out] | k_leaves | the resultant leaves of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
Definition at line 444 of file voxel_grid_covariance.h.
Referenced by pcl::VoxelGridCovariance< PointTarget >::nearestKSearch().
| inline |
Search for all the nearest occupied voxels of the query point in a given radius.
[in] | cloud | the given query point |
[in] | index | a valid index in cloud representing a valid (i.e., finite) query point |
[in] | radius | the radius of the sphere bounding all of p_q's neighbors |
[out] | k_leaves | the resultant leaves of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
[in] | max_nn |
Definition at line 544 of file voxel_grid_covariance.h.
| inline |
Search for all the nearest occupied voxels of the query point in a given radius.
[in] | point | the given query point |
[in] | radius | the radius of the sphere bounding all of p_q's neighbors |
[out] | k_leaves | the resultant leaves of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
[in] | max_nn |
Definition at line 503 of file voxel_grid_covariance.h.
Referenced by pcl::VoxelGridCovariance< PointTarget >::radiusSearch().
| inline |
Set the minimum allowable ratio between eigenvalues to prevent singular covariance matrices.
[in] | min_covar_eigvalue_mult | the minimum allowable ratio between eigenvalues |
Definition at line 244 of file voxel_grid_covariance.h.
| inline |
Set the minimum number of points required for a cell to be used (must be 3 or greater for covariance calculation).
[in] | min_points_per_voxel | the minimum number of points for required for a voxel to be used |
Definition at line 218 of file voxel_grid_covariance.h.
| protected |
KdTree generated using voxel_centroids_ (used for searching).
Definition at line 579 of file voxel_grid_covariance.h.
Referenced by pcl::VoxelGridCovariance< PointTarget >::filter(), pcl::VoxelGridCovariance< PointTarget >::nearestKSearch(), and pcl::VoxelGridCovariance< PointTarget >::radiusSearch().
| 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().
| 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().
| 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().
| protected |
Flag to determine if voxel structure is searchable.
Definition at line 561 of file voxel_grid_covariance.h.
Referenced by pcl::VoxelGridCovariance< PointTarget >::filter(), pcl::VoxelGridCovariance< PointTarget >::nearestKSearch(), and pcl::VoxelGridCovariance< PointTarget >::radiusSearch().
| 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().
| 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().
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_voxel_grid_covariance.html