Point Cloud Library (PCL)
1.14.1-dev
|
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 = shared_ptr< SurfaceReconstruction< PointNT > > |
using | ConstPtr = shared_ptr< const SurfaceReconstruction< PointNT > > |
Public Types inherited from pcl::PCLSurfaceBase< PointInT > | |
using | Ptr = shared_ptr< PCLSurfaceBase< PointInT > > |
using | ConstPtr = shared_ptr< const PCLSurfaceBase< PointInT > > |
using | KdTree = pcl::search::Search< PointInT > |
using | KdTreePtr = typename KdTree::Ptr |
Public Types inherited from pcl::PCLBase< PointInT > | |
using | PointCloud = pcl::PointCloud< PointInT > |
using | PointCloudPtr = typename PointCloud::Ptr |
using | PointCloudConstPtr = typename PointCloud::ConstPtr |
using | PointIndicesPtr = PointIndices::Ptr |
using | PointIndicesConstPtr = PointIndices::ConstPtr |
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. More... | |
~MarchingCubesRBF () override | |
Destructor. More... | |
void | voxelizeData () override |
Convert the point cloud into voxel data. More... | |
void | setOffSurfaceDisplacement (float epsilon) |
Set the off-surface points displacement value. More... | |
float | getOffSurfaceDisplacement () |
Get the off-surface points displacement value. More... | |
Public Member Functions inherited from pcl::MarchingCubes< PointNT > | |
MarchingCubes (const float percentage_extend_grid=0.0f, const float iso_level=0.0f) | |
Constructor. More... | |
~MarchingCubes () override | |
Destructor. More... | |
void | setIsoLevel (float iso_level) |
Method that sets the iso level of the surface to be extracted. More... | |
float | getIsoLevel () |
Method that returns the iso level of the surface to be extracted. More... | |
void | setGridResolution (int res_x, int res_y, int res_z) |
Method that sets the marching cubes grid resolution. More... | |
void | getGridResolution (int &res_x, int &res_y, int &res_z) |
Method to get the marching cubes grid resolution. More... | |
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. More... | |
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. More... | |
Public Member Functions inherited from pcl::SurfaceReconstruction< PointNT > | |
SurfaceReconstruction ()=default | |
Constructor. More... | |
~SurfaceReconstruction () override=default | |
Destructor. More... | |
void | reconstruct (pcl::PolygonMesh &output) override |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> More... | |
virtual void | reconstruct (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> More... | |
Public Member Functions inherited from pcl::PCLSurfaceBase< PointInT > | |
PCLSurfaceBase () | |
Empty constructor. More... | |
~PCLSurfaceBase () override=default | |
Empty destructor. More... | |
void | setSearchMethod (const KdTreePtr &tree) |
Provide an optional pointer to a search object. More... | |
KdTreePtr | getSearchMethod () |
Get a pointer to the search method used. More... | |
Public Member Functions inherited from pcl::PCLBase< PointInT > | |
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... | |
PointCloudConstPtr const | 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... | |
IndicesConstPtr const | getIndices () const |
Get a pointer to the vector of indices used. More... | |
const PointInT & | operator[] (std::size_t pos) const |
Override PointCloud operator[] to shorten code. More... | |
Protected Member Functions | |
double | kernel (Eigen::Vector3d c, Eigen::Vector3d x) |
the Radial Basis Function kernel. More... | |
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. More... | |
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. More... | |
void | getBoundingBox () |
Get the bounding box for the input data points. More... | |
virtual float | getGridValue (Eigen::Vector3i pos) |
Method that returns the scalar value at the given grid position. More... | |
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. More... | |
std::string | getClassName () const override |
Class get name method. More... | |
void | performReconstruction (pcl::PolygonMesh &output) override |
Extract the surface. More... | |
void | performReconstruction (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) override |
Extract the surface. More... | |
Protected Member Functions inherited from pcl::PCLBase< PointInT > | |
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 | |
float | off_surface_epsilon_ |
The off-surface displacement value. More... | |
Protected Attributes inherited from pcl::MarchingCubes< PointNT > | |
std::vector< float > | grid_ |
The data structure storing the 3D grid. More... | |
int | res_x_ = 32 |
The grid resolution. More... | |
int | res_y_ = 32 |
int | res_z_ = 32 |
Eigen::Array3f | upper_boundary_ |
bounding box More... | |
Eigen::Array3f | lower_boundary_ |
Eigen::Array3f | size_voxel_ |
size of voxels More... | |
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. More... | |
float | iso_level_ |
The iso level to be extracted. More... | |
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. More... | |
Protected Attributes inherited from pcl::PCLSurfaceBase< PointInT > | |
KdTreePtr | tree_ |
A pointer to the spatial search object. More... | |
Protected Attributes inherited from pcl::PCLBase< PointInT > | |
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... | |
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.
|
overridedefault |
Destructor.
|
inline |
Get the off-surface points displacement value.
Definition at line 106 of file marching_cubes_rbf.h.
References pcl::MarchingCubesRBF< PointNT >::off_surface_epsilon_.
|
protected |
the Radial Basis Function kernel.
Definition at line 108 of file marching_cubes_rbf.hpp.
|
inline |
Set the off-surface points displacement value.
[in] | epsilon | the value |
Definition at line 101 of file marching_cubes_rbf.h.
References pcl::MarchingCubesRBF< PointNT >::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.
|
protected |
The off-surface displacement value.
Definition at line 116 of file marching_cubes_rbf.h.
Referenced by pcl::MarchingCubesRBF< PointNT >::getOffSurfaceDisplacement(), and pcl::MarchingCubesRBF< PointNT >::setOffSurfaceDisplacement().