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.
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.
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.
Please visit the tutorials on http://www.pointclouds.org for more information.
Requirements
|
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
} |
|
|
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...
|
|
template<typename PointInT>
Enumerator |
---|
NONE |
|
FREE |
|
FRINGE |
|
BOUNDARY |
|
COMPLETED |
|
Definition at line 155 of file gp3.h.
template<typename PointInT >
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>
Enumerator |
---|
NONE |
|
DISTINCT_CLOUD |
|
SAMPLE_LOCAL_PLANE |
|
RANDOM_UNIFORM_DENSITY |
|
VOXEL_GRID_DILATION |
|
Definition at line 92 of file mls.h.
bool pcl::comparePoints2D |
( |
const std::pair< int, Eigen::Vector4f > & |
p1, |
|
|
const std::pair< int, Eigen::Vector4f > & |
p2 |
|
) |
| |
|
inline |
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
-
X | 2D coordinate of the point |
S1 | 2D coordinate of the segment's first point |
S2 | 2D coordinate of the segment's secont point |
R | 2D coorddinate of the reference point (defaults to 0,0) |
Definition at line 68 of file gp3.h.