VoxelGrid to estimate occluded space in the scene. More...
#include <pcl/filters/voxel_grid_occlusion_estimation.h>
Public Member Functions | |
| VoxelGridOcclusionEstimation () | |
| Empty constructor. More... |
|
| ~VoxelGridOcclusionEstimation () | |
| Destructor. More... |
|
| void | initializeVoxelGrid () |
| Initialize the voxel grid, needs to be called first Builts the voxel grid and computes additional values for the ray traversal algorithm. More... |
|
| int | occlusionEstimation (int &out_state, const Eigen::Vector3i &in_target_voxel) |
| Computes the state (free = 0, occluded = 1) of the voxel after utilizing a ray traversal algorithm to a target voxel in (i, j, k) coordinates. More... |
|
| int | occlusionEstimation (int &out_state, std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > &out_ray, const Eigen::Vector3i &in_target_voxel) |
| Computes the state (free = 0, occluded = 1) of the voxel after utilizing a ray traversal algorithm to a target voxel in (i, j, k) coordinates. More... |
|
| int | occlusionEstimationAll (std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > &occluded_voxels) |
| Computes the voxel coordinates (i, j, k) of all occluded voxels in the voxel grid. More... |
|
| PointCloud | getFilteredPointCloud () |
| Returns the voxel grid filtered point cloud. More... |
|
| Eigen::Vector3f | getMinBoundCoordinates () |
| Returns the minimum bounding of coordinates of the voxel grid (x,y,z). More... |
|
| Eigen::Vector3f | getMaxBoundCoordinates () |
| Returns the maximum bounding of coordinates of the voxel grid (x,y,z). More... |
|
| Eigen::Vector4f | getCentroidCoordinate (const Eigen::Vector3i &ijk) |
| Returns the corresponding centroid (x,y,z) coordinates in the grid of voxel (i,j,k). 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 | 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 | |
| float | rayBoxIntersection (const Eigen::Vector4f &origin, const Eigen::Vector4f &direction) |
| Returns the scaling value (tmin) were the ray intersects with the voxel grid bounding box. More... |
|
| int | rayTraversal (const Eigen::Vector3i &target_voxel, const Eigen::Vector4f &origin, const Eigen::Vector4f &direction, const float t_min) |
| Returns the state of the target voxel (0 = visible, 1 = occupied) unsing a ray traversal algorithm. More... |
|
| int | rayTraversal (std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > &out_ray, const Eigen::Vector3i &target_voxel, const Eigen::Vector4f &origin, const Eigen::Vector4f &direction, const float t_min) |
| Returns the state of the target voxel (0 = visible, 1 = occupied) and the voxels penetrated by the ray unsing a ray traversal algorithm. More... |
|
| float | round (float d) |
| Returns a rounded value. More... |
|
| Eigen::Vector3i | getGridCoordinatesRound (float x, float y, float z) |
| Returns the corresponding (i,j,k) coordinates in the grid of point (x,y,z). More... |
|
|
| |
| void | applyFilter (PointCloud &output) override |
| Downsample a Point Cloud using a voxelized grid approach. 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 | initialized_ |
| Eigen::Vector4f | sensor_origin_ |
| Eigen::Quaternionf | sensor_orientation_ |
| Eigen::Vector4f | b_min_ |
| Eigen::Vector4f | b_max_ |
| PointCloud | filtered_cloud_ |
|
| |
| 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... |
|
Additional Inherited Members | |
|
| |
| using | Ptr = shared_ptr< VoxelGrid< PointT > > |
| using | ConstPtr = shared_ptr< const VoxelGrid< 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 |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
VoxelGrid to estimate occluded space in the scene.
The ray traversal algorithm is implemented by the work of 'John Amanatides and Andrew Woo, A Fast Voxel Traversal Algorithm for Ray Tracing'
Definition at line 55 of file voxel_grid_occlusion_estimation.h.
| protected |
Definition at line 64 of file voxel_grid_occlusion_estimation.h.
| protected |
Definition at line 66 of file voxel_grid_occlusion_estimation.h.
| protected |
Definition at line 65 of file voxel_grid_occlusion_estimation.h.
| inline |
Empty constructor.
Definition at line 70 of file voxel_grid_occlusion_estimation.h.
References pcl::VoxelGridOcclusionEstimation< PointT >::initialized_, and pcl::VoxelGrid< PointT >::setSaveLeafLayout().
| inline |
Destructor.
Definition at line 77 of file voxel_grid_occlusion_estimation.h.
| inline |
Returns the corresponding centroid (x,y,z) coordinates in the grid of voxel (i,j,k).
| [in] | ijk | the coordinate (i, j, k) of the voxel |
Definition at line 147 of file voxel_grid_occlusion_estimation.h.
References pcl::VoxelGridOcclusionEstimation< PointT >::b_min_, pcl::VoxelGrid< PointT >::leaf_size_, and pcl::VoxelGrid< PointT >::min_b_.
| inline |
Returns the voxel grid filtered point cloud.
Definition at line 126 of file voxel_grid_occlusion_estimation.h.
References pcl::VoxelGridOcclusionEstimation< PointT >::filtered_cloud_.
| inlineprotected |
Returns the corresponding (i,j,k) coordinates in the grid of point (x,y,z).
| [in] | x | the X point coordinate to get the (i, j, k) index at |
| [in] | y | the Y point coordinate to get the (i, j, k) index at |
| [in] | z | the Z point coordinate to get the (i, j, k) index at |
Definition at line 227 of file voxel_grid_occlusion_estimation.h.
References pcl::VoxelGrid< PointT >::inverse_leaf_size_, and pcl::VoxelGridOcclusionEstimation< PointT >::round().
| inline |
Returns the maximum bounding of coordinates of the voxel grid (x,y,z).
Definition at line 139 of file voxel_grid_occlusion_estimation.h.
References pcl::VoxelGridOcclusionEstimation< PointT >::b_max_.
| inline |
Returns the minimum bounding of coordinates of the voxel grid (x,y,z).
Definition at line 133 of file voxel_grid_occlusion_estimation.h.
References pcl::VoxelGridOcclusionEstimation< PointT >::b_min_.
| void pcl::VoxelGridOcclusionEstimation< PointT >::initializeVoxelGrid |
Initialize the voxel grid, needs to be called first Builts the voxel grid and computes additional values for the ray traversal algorithm.
Definition at line 46 of file voxel_grid_occlusion_estimation.hpp.
| int pcl::VoxelGridOcclusionEstimation< PointT >::occlusionEstimation | ( | int & | out_state, |
| const Eigen::Vector3i & | in_target_voxel | ||
| ) |
Computes the state (free = 0, occluded = 1) of the voxel after utilizing a ray traversal algorithm to a target voxel in (i, j, k) coordinates.
| [out] | out_state | The state of the voxel. |
| [in] | in_target_voxel | The target voxel coordinate (i, j, k) of the voxel. |
Definition at line 69 of file voxel_grid_occlusion_estimation.hpp.
| int pcl::VoxelGridOcclusionEstimation< PointT >::occlusionEstimation | ( | int & | out_state, |
| std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > & | out_ray, | ||
| const Eigen::Vector3i & | in_target_voxel | ||
| ) |
Computes the state (free = 0, occluded = 1) of the voxel after utilizing a ray traversal algorithm to a target voxel in (i, j, k) coordinates.
Additionally, this function returns the voxels penetrated of the ray-traversal algorithm till reaching the target voxel.
| [out] | out_state | The state of the voxel. |
| [out] | out_ray | The voxels penetrated of the ray-traversal algorithm. |
| [in] | in_target_voxel | The target voxel coordinate (i, j, k) of the voxel. |
Definition at line 100 of file voxel_grid_occlusion_estimation.hpp.
| int pcl::VoxelGridOcclusionEstimation< PointT >::occlusionEstimationAll | ( | std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > & | occluded_voxels | ) |
Computes the voxel coordinates (i, j, k) of all occluded voxels in the voxel grid.
| [out] | occluded_voxels | the coordinates (i, j, k) of all occluded voxels |
Definition at line 132 of file voxel_grid_occlusion_estimation.hpp.
| protected |
Returns the scaling value (tmin) were the ray intersects with the voxel grid bounding box.
(p_entry = origin + tmin * orientation)
| [in] | origin | The sensor origin |
| [in] | direction | The sensor orientation |
Definition at line 175 of file voxel_grid_occlusion_estimation.hpp.
| protected |
Returns the state of the target voxel (0 = visible, 1 = occupied) unsing a ray traversal algorithm.
| [in] | target_voxel | The target voxel in the voxel grid with coordinate (i, j, k). |
| [in] | origin | The sensor origin. |
| [in] | direction | The sensor orientation |
| [in] | t_min | The scaling value (tmin). |
Definition at line 242 of file voxel_grid_occlusion_estimation.hpp.
| protected |
Returns the state of the target voxel (0 = visible, 1 = occupied) and the voxels penetrated by the ray unsing a ray traversal algorithm.
| [out] | out_ray | The voxels penetrated by the ray in (i, j, k) coordinates |
| [in] | target_voxel | The target voxel in the voxel grid with coordinate (i, j, k). |
| [in] | origin | The sensor origin. |
| [in] | direction | The sensor orientation |
| [in] | t_min | The scaling value (tmin). |
Definition at line 334 of file voxel_grid_occlusion_estimation.hpp.
| inlineprotected |
Returns a rounded value.
| [in] | d |
Definition at line 215 of file voxel_grid_occlusion_estimation.h.
Referenced by pcl::VoxelGridOcclusionEstimation< PointT >::getGridCoordinatesRound().
| protected |
Definition at line 241 of file voxel_grid_occlusion_estimation.h.
Referenced by pcl::VoxelGridOcclusionEstimation< PointT >::getMaxBoundCoordinates().
| protected |
Definition at line 241 of file voxel_grid_occlusion_estimation.h.
Referenced by pcl::VoxelGridOcclusionEstimation< PointT >::getCentroidCoordinate(), and pcl::VoxelGridOcclusionEstimation< PointT >::getMinBoundCoordinates().
| protected |
Definition at line 244 of file voxel_grid_occlusion_estimation.h.
Referenced by pcl::VoxelGridOcclusionEstimation< PointT >::getFilteredPointCloud().
| protected |
Definition at line 235 of file voxel_grid_occlusion_estimation.h.
Referenced by pcl::VoxelGridOcclusionEstimation< PointT >::VoxelGridOcclusionEstimation().
| protected |
Definition at line 238 of file voxel_grid_occlusion_estimation.h.
| protected |
Definition at line 237 of file voxel_grid_occlusion_estimation.h.
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_voxel_grid_occlusion_estimation.html