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... |
|
|
| |
| 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... |
|
|
| |
| 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... |
|
|
| |
| 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 |
|
| |
| 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... |
|
|
| |
| const std::string & | getClassName () const |
| Get a string representation of the name of this class. More... |
|
|
| |
| 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... |
|
|
| |
| 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... |
|
|
| |
| 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... |
|
|
| |
| 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