Point Cloud Library (PCL)  1.8.0-dev
Classes | Enumerations | Functions
Module surface

Detailed Description

Overview

The pcl_surface library deals with reconstructing the original surfaces from 3D scans. Depending on the task at hand, this can be for example the hull, a mesh representation or a smoothed/resampled surface with normals.

Smoothing and resampling can be important if the cloud is noisy, or if it is composed of multiple scans that are not aligned perfectly. The complexity of the surface estimation can be adjusted, and normals can be estimated in the same step if needed.

resampling_1.jpg

Meshing is a general way to create a surface out of points, and currently there are two algorithms provided: a very fast triangulation of the original points, and a slower meshing that does smoothing and hole filling as well.

surface_meshing.png

Creating a convex or concave hull is useful for example when there is a need for a simplified surface representation or when boundaries need to be extracted.

surface_hull.png

Please visit the tutorials on http://www.pointclouds.org for more information.

Requirements

Classes

class  pcl::ConcaveHull< PointInT >
 ConcaveHull (alpha shapes) using libqhull library. More...
 
class  pcl::ConvexHull< PointInT >
 ConvexHull using libqhull library. More...
 
class  pcl::EarClipping
 The ear clipping triangulation algorithm. More...
 
class  pcl::GreedyProjectionTriangulation< PointInT >
 GreedyProjectionTriangulation is an implementation of a greedy triangulation algorithm for 3D points based on local 2D projections. More...
 
class  pcl::GridProjection< PointNT >
 Grid projection surface reconstruction method. More...
 
struct  pcl::GridProjection< PointNT >::Leaf
 Data leaf. More...
 
class  pcl::MarchingCubes< PointNT >
 The marching cubes surface reconstruction algorithm. More...
 
class  pcl::MarchingCubesHoppe< PointNT >
 The marching cubes surface reconstruction algorithm, using a signed distance function based on the distance from tangent planes, proposed by Hoppe et. More...
 
class  pcl::MarchingCubesRBF< PointNT >
 The marching cubes surface reconstruction algorithm, using a signed distance function based on radial basis functions. More...
 
class  pcl::MovingLeastSquares< PointInT, PointOutT >
 MovingLeastSquares represent an implementation of the MLS (Moving Least Squares) algorithm for data smoothing and improved normal estimation. More...
 
struct  pcl::MovingLeastSquares< PointInT, PointOutT >::MLSResult
 Data structure used to store the results of the MLS fitting. More...
 
class  pcl::MovingLeastSquares< PointInT, PointOutT >::MLSVoxelGrid
 A minimalistic implementation of a voxel grid, necessary for the point cloud upsampling. More...
 
class  pcl::OrganizedFastMesh< PointInT >
 Simple triangulation/surface reconstruction for organized point clouds. More...
 
class  pcl::Poisson< PointNT >
 The Poisson surface reconstruction algorithm. More...
 
class  pcl::CloudSurfaceProcessing< PointInT, PointOutT >
 CloudSurfaceProcessing represents the base class for algorithms that takes a point cloud as input and produces a new output cloud that has been modified towards a better surface representation. More...
 
class  pcl::MeshProcessing
 MeshProcessing represents the base class for mesh processing algorithms. More...
 
class  pcl::SurfaceReconstruction< PointInT >
 SurfaceReconstruction represents a base surface reconstruction class. More...
 
class  pcl::MeshConstruction< PointInT >
 MeshConstruction represents a base surface reconstruction class. More...
 
class  pcl::TextureMapping< PointInT >
 The texture mapping algorithm. More...
 

Enumerations

enum  pcl::GreedyProjectionTriangulation< PointInT >::GP3Type {
  pcl::GreedyProjectionTriangulation< PointInT >::NONE = -1, pcl::GreedyProjectionTriangulation< PointInT >::FREE = 0, pcl::GreedyProjectionTriangulation< PointInT >::FRINGE = 1, pcl::GreedyProjectionTriangulation< PointInT >::BOUNDARY = 2,
  pcl::GreedyProjectionTriangulation< PointInT >::COMPLETED = 3
}
 
enum  pcl::MovingLeastSquares< PointInT, PointOutT >::UpsamplingMethod {
  pcl::MovingLeastSquares< PointInT, PointOutT >::NONE, pcl::MovingLeastSquares< PointInT, PointOutT >::DISTINCT_CLOUD, pcl::MovingLeastSquares< PointInT, PointOutT >::SAMPLE_LOCAL_PLANE, pcl::MovingLeastSquares< PointInT, PointOutT >::RANDOM_UNIFORM_DENSITY,
  pcl::MovingLeastSquares< PointInT, PointOutT >::VOXEL_GRID_DILATION
}
 
enum  pcl::OrganizedFastMesh< PointInT >::TriangulationType { pcl::OrganizedFastMesh< PointInT >::TRIANGLE_RIGHT_CUT, pcl::OrganizedFastMesh< PointInT >::TRIANGLE_LEFT_CUT, pcl::OrganizedFastMesh< PointInT >::TRIANGLE_ADAPTIVE_CUT, pcl::OrganizedFastMesh< PointInT >::QUAD_MESH }
 

Functions

bool pcl::comparePoints2D (const std::pair< int, Eigen::Vector4f > &p1, const std::pair< int, Eigen::Vector4f > &p2)
 Sort 2D points in a vector structure. More...
 
bool pcl::isVisible (const Eigen::Vector2f &X, const Eigen::Vector2f &S1, const Eigen::Vector2f &S2, const Eigen::Vector2f &R=Eigen::Vector2f::Zero())
 Returns if a point X is visible from point R (or the origin) when taking into account the segment between the points S1 and S2. More...
 

Enumeration Type Documentation

template<typename PointInT>
enum pcl::GreedyProjectionTriangulation::GP3Type
Enumerator
NONE 
FREE 
FRINGE 
BOUNDARY 
COMPLETED 

Definition at line 155 of file gp3.h.

template<typename PointInT >
enum pcl::OrganizedFastMesh::TriangulationType
Enumerator
TRIANGLE_RIGHT_CUT 
TRIANGLE_LEFT_CUT 
TRIANGLE_ADAPTIVE_CUT 
QUAD_MESH 

Definition at line 78 of file organized_fast_mesh.h.

template<typename PointInT, typename PointOutT>
enum pcl::MovingLeastSquares::UpsamplingMethod
Enumerator
NONE 
DISTINCT_CLOUD 
SAMPLE_LOCAL_PLANE 
RANDOM_UNIFORM_DENSITY 
VOXEL_GRID_DILATION 

Definition at line 92 of file mls.h.

Function Documentation

bool pcl::comparePoints2D ( const std::pair< int, Eigen::Vector4f > &  p1,
const std::pair< int, Eigen::Vector4f > &  p2 
)
inline

Sort 2D points in a vector structure.

Parameters
p1the first point
p2the second point

Definition at line 59 of file convex_hull.h.

Referenced by pcl::ConvexHull< PointInT >::performReconstruction2D().

bool pcl::isVisible ( const Eigen::Vector2f &  X,
const Eigen::Vector2f &  S1,
const Eigen::Vector2f &  S2,
const Eigen::Vector2f &  R = Eigen::Vector2f::Zero () 
)
inline

Returns if a point X is visible from point R (or the origin) when taking into account the segment between the points S1 and S2.

Parameters
X2D coordinate of the point
S12D coordinate of the segment's first point
S22D coordinate of the segment's secont point
R2D coorddinate of the reference point (defaults to 0,0)

Definition at line 68 of file gp3.h.