|
Point Cloud Library (PCL) 1.15.0
|
The marching cubes surface reconstruction algorithm, using a signed distance function based on radial basis functions. More...
#include <pcl/surface/marching_cubes_rbf.h>
Public Types | |
| using | Ptr = shared_ptr<MarchingCubesRBF<PointNT> > |
| using | ConstPtr = shared_ptr<const MarchingCubesRBF<PointNT> > |
| using | PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr |
| using | KdTree = pcl::KdTree<PointNT> |
| using | KdTreePtr = typename KdTree::Ptr |
| Public Types inherited from pcl::MarchingCubes< PointNT > | |
| using | Ptr = shared_ptr<MarchingCubes<PointNT> > |
| using | ConstPtr = shared_ptr<const MarchingCubes<PointNT> > |
| using | PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr |
| using | KdTree = pcl::KdTree<PointNT> |
| using | KdTreePtr = typename KdTree::Ptr |
| Public Types inherited from pcl::SurfaceReconstruction< PointNT > | |
| using | Ptr |
| using | ConstPtr |
| Public Types inherited from pcl::PCLSurfaceBase< PointNT > | |
| using | Ptr |
| using | ConstPtr |
| using | KdTree |
| using | KdTreePtr |
| Public Types inherited from pcl::PCLBase< PointNT > | |
| using | PointCloud |
| using | PointCloudPtr |
| using | PointCloudConstPtr |
| using | PointIndicesPtr |
| using | PointIndicesConstPtr |
Public Member Functions | |
| MarchingCubesRBF (const float off_surface_epsilon=0.1f, const float percentage_extend_grid=0.0f, const float iso_level=0.0f) | |
| Constructor. | |
| ~MarchingCubesRBF () override | |
| Destructor. | |
| void | voxelizeData () override |
| Convert the point cloud into voxel data. | |
| void | setOffSurfaceDisplacement (float epsilon) |
| Set the off-surface points displacement value. | |
| float | getOffSurfaceDisplacement () |
| Get the off-surface points displacement value. | |
| Public Member Functions inherited from pcl::MarchingCubes< PointNT > | |
| MarchingCubes (const float percentage_extend_grid=0.0f, const float iso_level=0.0f) | |
| Constructor. | |
| ~MarchingCubes () override | |
| Destructor. | |
| void | setIsoLevel (float iso_level) |
| Method that sets the iso level of the surface to be extracted. | |
| float | getIsoLevel () |
| Method that returns the iso level of the surface to be extracted. | |
| void | setGridResolution (int res_x, int res_y, int res_z) |
| Method that sets the marching cubes grid resolution. | |
| void | getGridResolution (int &res_x, int &res_y, int &res_z) |
| Method to get the marching cubes grid resolution. | |
| void | setPercentageExtendGrid (float percentage) |
| Method that sets the parameter that defines how much free space should be left inside the grid between the bounding box of the point cloud and the grid limits. | |
| float | getPercentageExtendGrid () |
| Method that gets the parameter that defines how much free space should be left inside the grid between the bounding box of the point cloud and the grid limits, as a percentage of the bounding box. | |
| Public Member Functions inherited from pcl::SurfaceReconstruction< PointNT > | |
| SurfaceReconstruction ()=default | |
| Constructor. | |
| ~SurfaceReconstruction () override=default | |
| Destructor. | |
| void | reconstruct (pcl::PolygonMesh &output) override |
| Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> | |
| Public Member Functions inherited from pcl::PCLSurfaceBase< PointNT > | |
| PCLSurfaceBase () | |
| Empty constructor. | |
| ~PCLSurfaceBase () override=default | |
| Empty destructor. | |
| void | setSearchMethod (const KdTreePtr &tree) |
| Provide an optional pointer to a search object. | |
| KdTreePtr | getSearchMethod () |
| Get a pointer to the search method used. | |
| Public Member Functions inherited from pcl::PCLBase< PointNT > | |
| PCLBase () | |
| Empty constructor. | |
| virtual | ~PCLBase ()=default |
| Destructor. | |
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Provide a pointer to the input dataset. | |
| PointCloudConstPtr const | getInputCloud () const |
| Get a pointer to the input point cloud dataset. | |
| virtual void | setIndices (const IndicesPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. | |
| IndicesPtr | getIndices () |
| Get a pointer to the vector of indices used. | |
| const PointNT & | operator[] (std::size_t pos) const |
| Override PointCloud operator[] to shorten code. | |
Protected Member Functions | |
| double | kernel (Eigen::Vector3d c, Eigen::Vector3d x) |
| the Radial Basis Function kernel. | |
| Protected Member Functions inherited from pcl::MarchingCubes< PointNT > | |
| void | interpolateEdge (Eigen::Vector3f &p1, Eigen::Vector3f &p2, float val_p1, float val_p2, Eigen::Vector3f &output) |
| Interpolate along the voxel edge. | |
| void | createSurface (const std::vector< float > &leaf_node, const Eigen::Vector3i &index_3d, pcl::PointCloud< PointNT > &cloud) |
| Calculate out the corresponding polygons in the leaf node. | |
| void | getBoundingBox () |
| Get the bounding box for the input data points. | |
| virtual float | getGridValue (Eigen::Vector3i pos) |
| Method that returns the scalar value at the given grid position. | |
| void | getNeighborList1D (std::vector< float > &leaf, Eigen::Vector3i &index3d) |
| Method that returns the scalar values of the neighbors of a given 3D position in the grid. | |
| std::string | getClassName () const override |
| Class get name method. | |
| void | performReconstruction (pcl::PolygonMesh &output) override |
| Extract the surface. | |
| void | performReconstruction (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) override |
| Extract the surface. | |
| Protected Member Functions inherited from pcl::PCLBase< PointNT > | |
| bool | initCompute () |
| This method should get called before starting the actual computation. | |
| bool | deinitCompute () |
| This method should get called after finishing the actual computation. | |
Protected Attributes | |
| float | off_surface_epsilon_ |
| The off-surface displacement value. | |
| Protected Attributes inherited from pcl::MarchingCubes< PointNT > | |
| std::vector< float > | grid_ |
| The data structure storing the 3D grid. | |
| int | res_x_ = 32 |
| The grid resolution. | |
| int | res_y_ = 32 |
| int | res_z_ = 32 |
| Eigen::Array3f | upper_boundary_ |
| bounding box | |
| Eigen::Array3f | lower_boundary_ |
| Eigen::Array3f | size_voxel_ |
| size of voxels | |
| float | percentage_extend_grid_ |
| Parameter that defines how much free space should be left inside the grid between the bounding box of the point cloud and the grid limits, as a percentage of the bounding box. | |
| float | iso_level_ |
| The iso level to be extracted. | |
| Protected Attributes inherited from pcl::SurfaceReconstruction< PointNT > | |
| bool | check_tree_ |
| A flag specifying whether or not the derived reconstruction algorithm needs the search object tree. | |
| Protected Attributes inherited from pcl::PCLSurfaceBase< PointNT > | |
| KdTreePtr | tree_ |
| A pointer to the spatial search object. | |
| Protected Attributes inherited from pcl::PCLBase< PointNT > | |
| PointCloudConstPtr | input_ |
| The input point cloud dataset. | |
| IndicesPtr | indices_ |
| A pointer to the vector of point indices to use. | |
| bool | use_indices_ |
| Set to true if point indices are used. | |
| bool | fake_indices_ |
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. | |
The marching cubes surface reconstruction algorithm, using a signed distance function based on radial basis functions.
Partially based on: Carr J.C., Beatson R.K., Cherrie J.B., Mitchell T.J., Fright W.R., McCallum B.C. and Evans T.R., "Reconstruction and representation of 3D objects with radial basis functions" SIGGRAPH '01
| PointNT | Use pcl::PointNormal or pcl::PointXYZRGBNormal or pcl::PointXYZINormal |
Definition at line 57 of file marching_cubes_rbf.h.
| using pcl::MarchingCubesRBF< PointNT >::ConstPtr = shared_ptr<const MarchingCubesRBF<PointNT> > |
Definition at line 61 of file marching_cubes_rbf.h.
| using pcl::MarchingCubesRBF< PointNT >::KdTree = pcl::KdTree<PointNT> |
Definition at line 75 of file marching_cubes_rbf.h.
| using pcl::MarchingCubesRBF< PointNT >::KdTreePtr = typename KdTree::Ptr |
Definition at line 76 of file marching_cubes_rbf.h.
| using pcl::MarchingCubesRBF< PointNT >::PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr |
Definition at line 73 of file marching_cubes_rbf.h.
| using pcl::MarchingCubesRBF< PointNT >::Ptr = shared_ptr<MarchingCubesRBF<PointNT> > |
Definition at line 60 of file marching_cubes_rbf.h.
|
inline |
Constructor.
Definition at line 80 of file marching_cubes_rbf.h.
References pcl::MarchingCubes< PointNT >::MarchingCubes(), and off_surface_epsilon_.
|
overridedefault |
Destructor.
|
inline |
Get the off-surface points displacement value.
Definition at line 106 of file marching_cubes_rbf.h.
References off_surface_epsilon_.
|
protected |
the Radial Basis Function kernel.
Definition at line 108 of file marching_cubes_rbf.hpp.
Referenced by voxelizeData().
|
inline |
Set the off-surface points displacement value.
| [in] | epsilon | the value |
Definition at line 101 of file marching_cubes_rbf.h.
References off_surface_epsilon_.
|
overridevirtual |
Convert the point cloud into voxel data.
Implements pcl::MarchingCubes< PointNT >.
Definition at line 50 of file marching_cubes_rbf.hpp.
References pcl::MarchingCubes< PointNT >::grid_, pcl::PCLBase< PointNT >::input_, kernel(), pcl::MarchingCubes< PointNT >::lower_boundary_, off_surface_epsilon_, pcl::MarchingCubes< PointNT >::res_x_, pcl::MarchingCubes< PointNT >::res_y_, pcl::MarchingCubes< PointNT >::res_z_, and pcl::MarchingCubes< PointNT >::size_voxel_.
|
protected |
The off-surface displacement value.
Definition at line 116 of file marching_cubes_rbf.h.
Referenced by getOffSurfaceDisplacement(), MarchingCubesRBF(), setOffSurfaceDisplacement(), and voxelizeData().