Point Cloud Library (PCL)
1.7.2
|
ConcaveHull (alpha shapes) using libqhull library. More...
#include <pcl/surface/concave_hull.h>
Public Types | |
typedef pcl::PointCloud< PointInT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
![]() | |
typedef boost::shared_ptr< MeshConstruction< PointInT > > | Ptr |
typedef boost::shared_ptr< const MeshConstruction< PointInT > > | ConstPtr |
![]() | |
typedef boost::shared_ptr< PCLSurfaceBase< PointInT > > | Ptr |
typedef boost::shared_ptr< const PCLSurfaceBase< PointInT > > | ConstPtr |
typedef pcl::search::Search< PointInT > | KdTree |
typedef pcl::search::Search< PointInT >::Ptr | KdTreePtr |
![]() | |
typedef pcl::PointCloud< PointInT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef boost::shared_ptr< PointIndices > | PointIndicesPtr |
typedef boost::shared_ptr< PointIndices const > | PointIndicesConstPtr |
Public Member Functions | |
ConcaveHull () | |
Empty constructor. More... | |
virtual | ~ConcaveHull () |
Empty destructor. More... | |
void | reconstruct (PointCloud &points, std::vector< pcl::Vertices > &polygons) |
Compute a concave hull for all points given. More... | |
void | reconstruct (PointCloud &output) |
Compute a concave hull for all points given. More... | |
void | setAlpha (double alpha) |
Set the alpha value, which limits the size of the resultant hull segments (the smaller the more detailed the hull). More... | |
double | getAlpha () |
Returns the alpha parameter, see setAlpha(). More... | |
void | setVoronoiCenters (PointCloudPtr voronoi_centers) |
If set, the voronoi cells center will be saved in voronoi_centers More... | |
void | setKeepInformation (bool value) |
If keep_information_is set to true the convex hull points keep other information like rgb, normals, ... More... | |
int | getDim () const |
Returns the dimensionality (2 or 3) of the calculated hull. More... | |
int | getDimension () const |
Returns the dimensionality (2 or 3) of the calculated hull. More... | |
void | setDimension (int dimension) |
Sets the dimension on the input data, 2D or 3D. More... | |
![]() | |
MeshConstruction () | |
Constructor. More... | |
virtual | ~MeshConstruction () |
Destructor. More... | |
virtual void | reconstruct (pcl::PolygonMesh &output) |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> More... | |
virtual void | reconstruct (std::vector< pcl::Vertices > &polygons) |
Base method for mesh construction for all points given in <setInputCloud (), setIndices ()> More... | |
![]() | |
PCLSurfaceBase () | |
Empty constructor. More... | |
virtual | ~PCLSurfaceBase () |
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... | |
![]() | |
PCLBase () | |
Empty constructor. More... | |
PCLBase (const PCLBase &base) | |
Copy constructor. More... | |
virtual | ~PCLBase () |
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 (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols) |
Set the indices for the points laying within an interest region of the point cloud. More... | |
IndicesPtr const | 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[] (size_t pos) const |
Override PointCloud operator[] to shorten code. More... | |
Protected Types | |
typedef boost::shared_ptr< ConcaveHull< PointInT > > | Ptr |
typedef boost::shared_ptr< const ConcaveHull< PointInT > > | ConstPtr |
Protected Member Functions | |
std::string | getClassName () const |
Class get name method. More... | |
void | performReconstruction (PointCloud &points, std::vector< pcl::Vertices > &polygons) |
The actual reconstruction method. More... | |
virtual void | performReconstruction (PolygonMesh &output) |
Abstract surface reconstruction method. More... | |
virtual void | performReconstruction (std::vector< pcl::Vertices > &polygons) |
Abstract surface reconstruction method. 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 | |
double | alpha_ |
The method accepts facets only if the distance from any vertex to the facet->center (center of the voronoi cell) is smaller than alpha. More... | |
bool | keep_information_ |
If set to true, the reconstructed point cloud describing the hull is obtained from the original input cloud by performing a nearest neighbor search from Qhull output. More... | |
PointCloudPtr | voronoi_centers_ |
the centers of the voronoi cells More... | |
int | dim_ |
the dimensionality of the concave hull More... | |
![]() | |
bool | check_tree_ |
A flag specifying whether or not the derived reconstruction algorithm needs the search object tree. More... | |
![]() | |
KdTreePtr | tree_ |
A pointer to the spatial search object. 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... | |
ConcaveHull (alpha shapes) using libqhull library.
Definition at line 56 of file concave_hull.h.
|
protected |
Definition at line 60 of file concave_hull.h.
typedef pcl::PointCloud<PointInT> pcl::ConcaveHull< PointInT >::PointCloud |
Definition at line 70 of file concave_hull.h.
typedef PointCloud::ConstPtr pcl::ConcaveHull< PointInT >::PointCloudConstPtr |
Definition at line 72 of file concave_hull.h.
typedef PointCloud::Ptr pcl::ConcaveHull< PointInT >::PointCloudPtr |
Definition at line 71 of file concave_hull.h.
|
protected |
Definition at line 59 of file concave_hull.h.
|
inline |
Empty constructor.
Definition at line 75 of file concave_hull.h.
|
inlinevirtual |
Empty destructor.
Definition at line 80 of file concave_hull.h.
|
inline |
Returns the alpha parameter, see setAlpha().
Definition at line 112 of file concave_hull.h.
References pcl::ConcaveHull< PointInT >::alpha_.
|
inlineprotectedvirtual |
Class get name method.
Reimplemented from pcl::PCLSurfaceBase< PointInT >.
Definition at line 163 of file concave_hull.h.
Referenced by pcl::ConcaveHull< PointInT >::setDimension().
int pcl::ConcaveHull< PointInT >::getDim | ( | ) | const |
Returns the dimensionality (2 or 3) of the calculated hull.
Software License Agreement (BSD License)
Point Cloud Library (PCL) - www.pointclouds.org Copyright (c) 2010-2011, Willow Garage, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
$Id$Get dimension of concave hull
Definition at line 63 of file concave_hull.hpp.
|
inline |
Returns the dimensionality (2 or 3) of the calculated hull.
Definition at line 143 of file concave_hull.h.
References pcl::ConcaveHull< PointInT >::dim_.
|
protected |
The actual reconstruction method.
points | the resultant points lying on the concave hull |
polygons | the resultant concave hull polygons, as a set of vertices. The Vertices structure contains an array of point indices. |
Definition at line 130 of file concave_hull.hpp.
References pcl::computeMeanAndCovarianceMatrix(), pcl::copyPointCloud(), pcl::demeanPointCloud(), pcl::eigen33(), pcl::EIGEN_ALIGN16, pcl::getCircumcircleRadius(), pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::KdTreeFLANN< PointT, Dist >::nearestKSearch(), pcl::PointCloud< PointT >::points, pcl::KdTreeFLANN< PointT, Dist >::setInputCloud(), pcl::PointCloud< PointT >::size(), pcl::transformPointCloud(), pcl::Vertices::vertices, and pcl::PointCloud< PointT >::width.
|
protectedvirtual |
Abstract surface reconstruction method.
[out] | output | the output polygonal mesh |
Implements pcl::MeshConstruction< PointInT >.
Definition at line 602 of file concave_hull.hpp.
References pcl::PolygonMesh::cloud, pcl::PolygonMesh::polygons, and pcl::toPCLPointCloud2().
|
protectedvirtual |
Abstract surface reconstruction method.
[out] | polygons | the resultant polygons, as a set of vertices. The Vertices structure contains an array of point indices. |
Implements pcl::MeshConstruction< PointInT >.
Definition at line 614 of file concave_hull.hpp.
void pcl::ConcaveHull< PointInT >::reconstruct | ( | PointCloud & | points, |
std::vector< pcl::Vertices > & | polygons | ||
) |
Compute a concave hull for all points given.
points | the resultant points lying on the concave hull |
polygons | the resultant concave hull polygons, as a set of vertices. The Vertices structure contains an array of point indices. |
Definition at line 99 of file concave_hull.hpp.
References pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.
void pcl::ConcaveHull< PointInT >::reconstruct | ( | PointCloud & | output | ) |
Compute a concave hull for all points given.
output | the resultant concave hull vertices |
Definition at line 70 of file concave_hull.hpp.
References pcl::PointCloud< PointT >::header, pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.
|
inline |
Set the alpha value, which limits the size of the resultant hull segments (the smaller the more detailed the hull).
alpha | positive, non-zero value, defining the maximum length from a vertex to the facet center (center of the voronoi cell). |
Definition at line 105 of file concave_hull.h.
References pcl::ConcaveHull< PointInT >::alpha_.
|
inline |
Sets the dimension on the input data, 2D or 3D.
[in] | dimension | The dimension of the input data. If not set, this will be determined automatically. |
Definition at line 152 of file concave_hull.h.
References pcl::ConcaveHull< PointInT >::dim_, and pcl::ConcaveHull< PointInT >::getClassName().
|
inline |
If keep_information_is set to true the convex hull points keep other information like rgb, normals, ...
value | where to keep the information or not, default is false |
Definition at line 131 of file concave_hull.h.
References pcl::ConcaveHull< PointInT >::keep_information_.
|
inline |
If set, the voronoi cells center will be saved in voronoi_centers
voronoi_centers |
Definition at line 121 of file concave_hull.h.
References pcl::ConcaveHull< PointInT >::voronoi_centers_.
|
protected |
The method accepts facets only if the distance from any vertex to the facet->center (center of the voronoi cell) is smaller than alpha.
Definition at line 188 of file concave_hull.h.
Referenced by pcl::ConcaveHull< PointInT >::getAlpha(), and pcl::ConcaveHull< PointInT >::setAlpha().
|
protected |
the dimensionality of the concave hull
Definition at line 199 of file concave_hull.h.
Referenced by pcl::ConcaveHull< PointInT >::getDimension(), and pcl::ConcaveHull< PointInT >::setDimension().
|
protected |
If set to true, the reconstructed point cloud describing the hull is obtained from the original input cloud by performing a nearest neighbor search from Qhull output.
Definition at line 193 of file concave_hull.h.
Referenced by pcl::ConcaveHull< PointInT >::setKeepInformation().
|
protected |
the centers of the voronoi cells
Definition at line 196 of file concave_hull.h.
Referenced by pcl::ConcaveHull< PointInT >::setVoronoiCenters().