Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
pcl Namespace Reference

Namespaces

namespace  apps
namespace  common
namespace  ComparisonOps
namespace  console
namespace  detail
namespace  distances
namespace  fields
namespace  geometry
namespace  io
namespace  octree
namespace  poisson
namespace  registration
namespace  search
namespace  surface
namespace  test
namespace  texture_mapping
namespace  tracking
namespace  traits
namespace  utils
namespace  visualization

Classes

struct  _Axis
 A point structure representing an Axis using its normal coordinates. (SSE friendly) More...
struct  _Normal
 A point structure representing normal coordinates and the surface curvature estimate. (SSE friendly) More...
struct  _PointNormal
 A point structure representing Euclidean xyz coordinates, together with normal coordinates and the surface curvature estimate. (SSE friendly) More...
struct  _PointSurfel
 A surfel, that is, a point structure representing Euclidean xyz coordinates, together with normal coordinates, a RGBA color, a radius, a confidence value and the surface curvature estimate. More...
struct  _PointWithRange
 A point structure representing Euclidean xyz coordinates, padded with an extra range float. More...
struct  _PointWithScale
 A point structure representing a 3-D position and scale. More...
struct  _PointWithViewpoint
struct  _PointXYZ
struct  _PointXYZHSV
struct  _PointXYZI
 A point structure representing Euclidean xyz coordinates, and the intensity value. More...
struct  _PointXYZINormal
 A point structure representing Euclidean xyz coordinates, intensity, together with normal coordinates and the surface curvature estimate. More...
struct  _PointXYZL
struct  _PointXYZRGB
struct  _PointXYZRGBA
 A point structure representing Euclidean xyz coordinates, and the RGBA color. More...
struct  _PointXYZRGBL
struct  _PointXYZRGBNormal
 A point structure representing Euclidean xyz coordinates, and the RGB color, together with normal coordinates and the surface curvature estimate. Due to historical reasons (PCL was first developed as a ROS package), the RGB information is packed into an integer and casted to a float. This is something we wish to remove in the near future, but in the meantime, the following code snippet should help you pack and unpack RGB colors in your PointXYZRGB structure: More...
struct  _ReferenceFrame
 A structure representing the Local Reference Frame of a point. More...
class  AdaptiveRangeCoder
 AdaptiveRangeCoder compression class More...
class  ApproximateVoxelGrid
 ApproximateVoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More...
struct  Axis
class  BilateralFilter
 A bilateral filter implementation for point cloud data. Uses the intensity data channel. More...
class  BilateralUpsampling
 Bilateral filtering implementation, based on the following paper: * Kopf, Johannes and Cohen, Michael F. and Lischinski, Dani and Uyttendaele, Matt - Joint Bilateral Upsampling, * ACM Transations in Graphics, July 2007. More...
class  BivariatePolynomialT
 This represents a bivariate polynomial and provides some functionality for it. More...
struct  BorderDescription
 A structure to store if a point in a range image lies on a border between an obstacle and the background. More...
struct  Boundary
 A point structure representing a description of whether a point is lying on a surface boundary or not. More...
class  BoundaryEstimation
 BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle criterion. The code makes use of the estimated surface normals at each point in the input dataset. More...
class  BoundaryEstimation< PointInT, PointNT, Eigen::MatrixXf >
 BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle criterion. The code makes use of the estimated surface normals at each point in the input dataset. More...
class  ChannelProperties
 ChannelProperties stores the properties of each channel in a cloud, namely: More...
class  Clipper3D
 Base class for 3D clipper objects. More...
struct  cloud_show
struct  cloud_show_base
class  CloudProperties
 CloudProperties stores a list of optional point cloud properties such as: More...
class  CloudSurfaceProcessing
 CloudSurfaceProcessing represents the base class for algorithms that take a point cloud as an input and produce a new output cloud that has been modified towards a better surface representation. These types of algorithms include surface smoothing, hole filling, cloud upsampling etc. More...
class  Comparator
 Comparator is the base class for comparators that compare two points given some function. Currently intended for use with OrganizedConnectedComponentSegmentation. More...
class  ComparisonBase
 The (abstract) base class for the comparison object. More...
class  ComputeFailedException
class  ConditionalRemoval
 ConditionalRemoval filters data that satisfies certain conditions. More...
class  ConditionAnd
 AND condition. More...
class  ConditionBase
 Base condition class. More...
class  ConditionOr
 OR condition. More...
struct  CopyIfFieldExists
 A helper functor that can copy a specific value if the given field exists. More...
struct  Correspondence
 Correspondence represents a match between two entities (e.g., points, descriptors, etc). This is represesented via the indices of a source point and a target point, and the distance between them. More...
class  CropBox
 CropBox is a filter that allows the user to filter all the data inside of a given box. More...
class  CropBox< sensor_msgs::PointCloud2 >
 CropBox is a filter that allows the user to filter all the data inside of a given box. More...
class  CropHull
 Filter points that lie inside or outside a 3D closed surface or 2D closed polygon, as generated by the ConvexHull or ConcaveHull classes. More...
class  CustomPointRepresentation
 CustomPointRepresentation extends PointRepresentation to allow for sub-part selection on the point. More...
class  CVFHEstimation
 CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: More...
class  DefaultFeatureRepresentation
 DefaulFeatureRepresentation extends PointRepresentation and is intended to be used when defining the default behavior for feature descriptor types (i.e., copy each element of each field into a float array). More...
class  DefaultPointRepresentation
 DefaultPointRepresentation extends PointRepresentation to define default behavior for common point types. More...
class  DefaultPointRepresentation< FPFHSignature33 >
class  DefaultPointRepresentation< NormalBasedSignature12 >
class  DefaultPointRepresentation< PFHRGBSignature250 >
class  DefaultPointRepresentation< PFHSignature125 >
class  DefaultPointRepresentation< PointNormal >
class  DefaultPointRepresentation< PointXYZ >
class  DefaultPointRepresentation< PointXYZI >
class  DefaultPointRepresentation< PPFSignature >
class  DefaultPointRepresentation< ShapeContext >
class  DefaultPointRepresentation< SHOT1344 >
class  DefaultPointRepresentation< SHOT352 >
class  DefaultPointRepresentation< VFHSignature308 >
class  EarClipping
 The ear clipping triangulation algorithm. The code is inspired by Flavien Brebion implementation, which is in n^3 and does not handle holes. More...
class  EdgeAwarePlaneComparator
 EdgeAwarePlaneComparator is a Comparator that operates on plane coefficients, for use in planar segmentation. In conjunction with OrganizedConnectedComponentSegmentation, this allows planes to be segmented from organized data. More...
class  ESFEstimation
 ESFEstimation estimates the ensemble of shape functions descriptors for a given point cloud dataset containing points. Shape functions are D2, D3, A3. For more information about the ESF descriptor, see: Walter Wohlkinger and Markus Vincze, "Ensemble of Shape Functions for 3D Object Classification", IEEE International Conference on Robotics and Biomimetics (IEEE-ROBIO), 2011 More...
struct  ESFSignature640
 A point structure representing the Ensemble of Shape Functions (ESF). More...
class  EuclideanClusterComparator
 EuclideanClusterComparator is a comparator used for finding clusters supported by planar surfaces. This needs to be run as a second pass after extracting planar surfaces, using MultiPlaneSegmentation for example. More...
class  EuclideanClusterExtraction
 EuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sense. More...
class  EuclideanPlaneCoefficientComparator
 EuclideanPlaneCoefficientComparator is a Comparator that operates on plane coefficients, for use in planar segmentation. In conjunction with OrganizedConnectedComponentSegmentation, this allows planes to be segmented from organized data. More...
class  ExtractIndices
 ExtractIndices extracts a set of indices from a point cloud. More...
class  ExtractIndices< sensor_msgs::PointCloud2 >
 ExtractIndices extracts a set of indices from a point cloud.
Usage examples: More...
class  ExtractPolygonalPrismData
 ExtractPolygonalPrismData uses a set of point indices that represent a planar model, and together with a given height, generates a 3D polygonal prism. The polygonal prism is then used to segment all points lying inside it. More...
class  Feature
 Feature represents the base feature class. Some generic 3D operations that are applicable to all features are defined here as static methods. More...
class  FeatureFromLabels
class  FeatureFromNormals
class  FeatureWithLocalReferenceFrames
 FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which need a local reference frame at each input keypoint. More...
class  FieldComparison
 The field-based specialization of the comparison object. More...
struct  FieldMatches
class  FileReader
 Point Cloud Data (FILE) file format reader interface. Any (FILE) format file reader should implement its virtual methodes. More...
class  FileWriter
 Point Cloud Data (FILE) file format writer. Any (FILE) format file reader should implement its virtual methodes. More...
class  Filter
 Filter represents the base filter class. All filters must inherit from this interface. More...
class  Filter< sensor_msgs::PointCloud2 >
 Filter represents the base filter class. All filters must inherit from this interface. More...
class  FilterIndices
 FilterIndices represents the base class for filters that are about binary point removal.
All derived classes have to implement the filter (PointCloud &output) and the filter (std::vector<int> &indices) methods. Ideally they also make use of the negative_, keep_organized_ and extract_removed_indices_ systems. The distinguishment between the negative_ and extract_removed_indices_ systems only makes sense if the class automatically filters non-finite entries in the filtering methods (recommended). More...
class  FilterIndices< sensor_msgs::PointCloud2 >
 FilterIndices represents the base class for filters that are about binary point removal.
All derived classes have to implement the filter (PointCloud &output) and the filter (std::vector<int> &indices) methods. Ideally they also make use of the negative_, keep_organized_ and extract_removed_indices_ systems. The distinguishment between the negative_ and extract_removed_indices_ systems only makes sense if the class automatically filters non-finite entries in the filtering methods (recommended). More...
struct  for_each_type_impl
struct  for_each_type_impl< false >
class  FPFHEstimation
 FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud dataset containing points and normals. More...
class  FPFHEstimation< PointInT, PointNT, Eigen::MatrixXf >
 FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud dataset containing points and normals. More...
class  FPFHEstimationOMP
 FPFHEstimationOMP estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. More...
struct  FPFHSignature33
 A point structure representing the Fast Point Feature Histogram (FPFH). More...
struct  Functor
class  GaussianKernel
class  GeneralizedIterativeClosestPoint
 GeneralizedIterativeClosestPoint is an ICP variant that implements the generalized iterative closest point algorithm as described by Alex Segal et al. in http://www.stanford.edu/~avsegal/resources/papers/Generalized_ICP.pdf The approach is based on using anistropic cost functions to optimize the alignment after closest point assignments have been made. The original code uses GSL and ANN while in ours we use an eigen mapped BFGS and FLANN. More...
struct  GFPFHSignature16
 A point structure representing the GFPFH descriptor with 16 bins. More...
class  Grabber
 Grabber interface for PCL 1.x device drivers. More...
class  GreedyProjectionTriangulation
 GreedyProjectionTriangulation is an implementation of a greedy triangulation algorithm for 3D points based on local 2D projections. It assumes locally smooth surfaces and relatively smooth transitions between areas with different point densities. More...
class  GridProjection
 Grid projection surface reconstruction method. More...
class  HarrisKeypoint3D
 HarrisKeypoint3D uses the idea of 2D Harris keypoints, but instead of using image gradients, it uses surface normals. More...
struct  Histogram
 A point structure representing an N-D histogram. More...
class  InitFailedException
 An exception thrown when init can not be performed should be used in all the PCLBase class inheritants. More...
class  IntegralImage2D
 Determines an integral image representation for a given organized data array. More...
class  IntegralImage2D< DataType, 1 >
 partial template specialization for integral images with just one channel. More...
class  IntegralImageNormalEstimation
 Surface normal estimation on organized data using integral images. More...
struct  IntegralImageTypeTraits
struct  IntegralImageTypeTraits< char >
struct  IntegralImageTypeTraits< float >
struct  IntegralImageTypeTraits< int >
struct  IntegralImageTypeTraits< short >
struct  IntegralImageTypeTraits< unsigned char >
struct  IntegralImageTypeTraits< unsigned int >
struct  IntegralImageTypeTraits< unsigned short >
struct  IntensityGradient
 A point structure representing the intensity gradient of an XYZI point cloud. More...
class  IntensityGradientEstimation
 IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position and intensity values. The intensity gradient at a given point will be a vector orthogonal to the surface normal and pointing in the direction of the greatest increase in local intensity; the vector's magnitude indicates the rate of intensity change. More...
class  IntensityGradientEstimation< PointInT, PointNT, Eigen::MatrixXf >
 IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position and intensity values. The intensity gradient at a given point will be a vector orthogonal to the surface normal and pointing in the direction of the greatest increase in local intensity; the vector's magnitude indicates the rate of intensity change. More...
class  IntensitySpinEstimation
 IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. For more information about the intensity-domain spin image descriptor, see: More...
class  IntensitySpinEstimation< PointInT, Eigen::MatrixXf >
 IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. For more information about the intensity-domain spin image descriptor, see: More...
struct  InterestPoint
 A point structure representing an interest point with Euclidean xyz coordinates, and an interest value. More...
struct  intersect
class  InvalidConversionException
 An exception that is thrown when a PointCloud2 message cannot be converted into a PCL type. More...
class  InvalidSACModelTypeException
 An exception that is thrown when a sample consensus model doesn't have the correct number of samples defined in model_types.h. More...
class  IOException
 An exception that is thrown during an IO error (typical read/write errors) More...
class  IsNotDenseException
 An exception that is thrown when a PointCloud is not dense but is attemped to be used as dense. More...
class  IterativeClosestPoint
 IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm. The transformation is estimated based on Singular Value Decomposition (SVD). More...
class  IterativeClosestPointNonLinear
 IterativeClosestPointNonLinear is an ICP variant that uses Levenberg-Marquardt optimization backend. The resultant transformation is optimized as a quaternion. More...
class  KdTree
 KdTree represents the base spatial locator class for kd-tree implementations. More...
class  KdTreeFLANN
 KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures. The class is making use of the FLANN (Fast Library for Approximate Nearest Neighbor) project by Marius Muja and David Lowe. More...
class  KdTreeFLANN< Eigen::MatrixXf >
 KdTreeFLANN is a generic type of 3D spatial locator using kD-tree structures. The class is making use of the FLANN (Fast Library for Approximate Nearest Neighbor) project by Marius Muja and David Lowe. More...
class  KernelWidthTooSmallException
 An exception that is thrown when the kernel size is too small. More...
class  Keypoint
 Keypoint represents the base class for key points. More...
struct  Label
class  LabeledEuclideanClusterExtraction
 LabeledEuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sense, with label info. More...
class  LeastMedianSquares
 LeastMedianSquares represents an implementation of the LMedS (Least Median of Squares) algorithm. LMedS is a RANSAC-like model-fitting algorithm that can tolerate up to 50% outliers without requiring thresholds to be set. See Andrea Fusiello's "Elements of Geometric Computer Vision" (http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/FUSIELLO4/tutorial.html#x1-520007) for more details. More...
class  LineIterator
 Organized Index Iterator for iterating over the "pixels" for a given line using the Bresenham algorithm. Supports 4 and 8 neighborhood connectivity. More...
class  MarchingCubes
 The marching cubes surface reconstruction algorithm. This is an abstract class that takes a grid and extracts the isosurface as a mesh, based on the original marching cubes paper: More...
class  MarchingCubesHoppe
 The marching cubes surface reconstruction algorithm, using a signed distance function based on the distance from tangent planes, proposed by Hoppe et. al. in: Hoppe H., DeRose T., Duchamp T., MC-Donald J., Stuetzle W., "Surface reconstruction from unorganized points", SIGGRAPH '92. More...
class  MarchingCubesRBF
 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. More...
class  MaximumLikelihoodSampleConsensus
 MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. Torr and A. Zisserman, Computer Vision and Image Understanding, vol 78, 2000. More...
class  MeshConstruction
 MeshConstruction represents a base surface reconstruction class. All mesh constructing methods that take in a point cloud and generate a surface that uses the original data as vertices should inherit from this class. More...
class  MeshProcessing
 MeshProcessing represents the base class for mesh processing algorithms. More...
class  MeshSmoothingLaplacianVTK
 PCL mesh smoothing based on the vtkSmoothPolyDataFilter algorithm from the VTK library. Please check out the original documentation for more details on the inner workings of the algorithm Warning: This wrapper does two fairly computationally expensive conversions from the PCL PolygonMesh data structure to the vtkPolyData data structure and back. More...
class  MeshSmoothingWindowedSincVTK
 PCL mesh smoothing based on the vtkWindowedSincPolyDataFilter algorithm from the VTK library. Please check out the original documentation for more details on the inner workings of the algorithm Warning: This wrapper does two fairly computationally expensive conversions from the PCL PolygonMesh data structure to the vtkPolyData data structure and back. More...
class  MeshSubdivisionVTK
 PCL mesh smoothing based on the vtkLinearSubdivisionFilter, vtkLoopSubdivisionFilter, vtkButterflySubdivisionFilter depending on the selected MeshSubdivisionVTKFilterType algorithm from the VTK library. Please check out the original documentation for more details on the inner workings of the algorithm Warning: This wrapper does two fairly computationally expensive conversions from the PCL PolygonMesh data structure to the vtkPolyData data structure and back. More...
class  MEstimatorSampleConsensus
 MEstimatorSampleConsensus represents an implementation of the MSAC (M-estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. Torr and A. Zisserman, Computer Vision and Image Understanding, vol 78, 2000. More...
struct  MomentInvariants
 A point structure representing the three moment invariants. More...
class  MomentInvariantsEstimation
 MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point. More...
class  MomentInvariantsEstimation< PointInT, Eigen::MatrixXf >
 MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point. More...
class  MovingLeastSquares
 MovingLeastSquares represent an implementation of the MLS (Moving Least Squares) algorithm for data smoothing and improved normal estimation. It also contains methods for upsampling the resulting cloud based on the parametric fit. Reference paper: "Computing and Rendering Point Set Surfaces" by Marc Alexa, Johannes Behr, Daniel Cohen-Or, Shachar Fleishman, David Levin and Claudio T. Silva www.sci.utah.edu/~shachar/Publications/crpss.pdf. More...
class  MovingLeastSquaresOMP
 MovingLeastSquaresOMP represent an OpenMP implementation of the MLS (Moving Least Squares) algorithm for data smoothing and improved normal estimation. More...
class  MultiscaleFeaturePersistence
 Generic class for extracting the persistent features from an input point cloud It can be given any Feature estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales. More...
class  Narf
 NARF (Normal Aligned Radial Features) is a point feature descriptor type for 3D data. Please refer to pcl/features/narf_descriptor.h if you want the class derived from pcl Feature. More...
struct  Narf36
 A point structure representing the Narf descriptor. More...
class  NarfDescriptor
class  NarfKeypoint
 NARF (Normal Aligned Radial Feature) keypoints. Input is a range image, output the indices of the keypoints More...
struct  NdCentroidFunctor
 Helper functor structure for n-D centroid estimation. More...
struct  NdConcatenateFunctor
 Helper functor structure for concatenate. More...
struct  NdCopyEigenPointFunctor
 Helper functor structure for copying data between an Eigen type and a PointT. More...
struct  NdCopyPointEigenFunctor
 Helper functor structure for copying data between an Eigen type and a PointT. More...
class  NNClassification
 Nearest neighbor search based classification of PCL point type features. FLANN is used to identify a neighborhood, based on which different scoring schemes can be employed to obtain likelihood values for a specified list of classes. More...
struct  Normal
struct  NormalBasedSignature12
 A point structure representing the Normal Based Signature for a feature matrix of 4-by-3. More...
class  NormalBasedSignatureEstimation
 Normal-based feature signature estimation class. Obtains the feature vector by applying Discrete Cosine and Fourier Transforms on an NxM array of real numbers representing the projection distances of the points in the input cloud to a disc around the point of interest. Please consult the following publication for more details: Xinju Li and Igor Guskov Multi-scale features for approximate alignment of point-based surfaces Proceedings of the third Eurographics symposium on Geometry processing July 2005, Vienna, Austria. More...
class  NormalEstimation
 NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point. If PointOutT is specified as pcl::Normal, the normal is stored in the first 3 components (0-2), and the curvature is stored in component 3. More...
class  NormalEstimation< PointInT, Eigen::MatrixXf >
 NormalEstimation estimates local surface properties at each 3D point, such as surface normals and curvatures. More...
class  NormalEstimationOMP
 NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. More...
class  NormalEstimationOMP< PointInT, Eigen::MatrixXf >
 NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. More...
class  NormalSpaceSampling
 NormalSpaceSampling samples the input point cloud in the space of normal directions computed at every point. More...
class  NotEnoughPointsException
 An exception that is thrown when the number of correspondants is not equal to the minimum required. More...
class  OrganizedConnectedComponentSegmentation
 OrganizedConnectedComponentSegmentation allows connected components to be found within organized point cloud data, given a comparison function. Given an input cloud and a comparator, it will output a PointCloud of labels, giving each connected component a unique id, along with a vector of PointIndices corresponding to each component. See OrganizedMultiPlaneSegmentation for an example application. More...
class  OrganizedFastMesh
 Simple triangulation/surface reconstruction for organized point clouds. Neighboring points (pixels in image space) are connected to construct a triangular mesh. More...
class  OrganizedIndexIterator
 base class for iterators on 2-dimensional maps like images/organized clouds etc. More...
class  OrganizedMultiPlaneSegmentation
 OrganizedMultiPlaneSegmentation finds all planes present in the input cloud, and outputs a vector of plane equations, as well as a vector of point clouds corresponding to the inliers of each detected plane. Only planes with more than min_inliers points are detected. Templated on point type, normal type, and label type. More...
class  PackedHSIComparison
 A packed HSI specialization of the comparison object. More...
class  PackedRGBComparison
 A packed rgb specialization of the comparison object. More...
class  PassThrough
 PassThrough passes points in a cloud based on constraints for one particular field of the point type. More...
class  PassThrough< sensor_msgs::PointCloud2 >
 PassThrough uses the base Filter class methods to pass through all data that satisfies the user given constraints. More...
class  PCA
class  PCDGrabber
class  PCDGrabberBase
 Base class for PCD file grabber. More...
class  PCDReader
 Point Cloud Data (PCD) file format reader. More...
class  PCDWriter
 Point Cloud Data (PCD) file format writer. More...
class  PCLBase
 PCL base class. Implements methods that are used by all PCL objects. More...
class  PCLBase< sensor_msgs::PointCloud2 >
class  PCLException
 A base class for all pcl exceptions which inherits from std::runtime_error. More...
class  PCLIOException
 Base exception class for I/O operations. More...
class  PCLSurfaceBase
 Pure abstract class. All types of meshing/reconstruction algorithms in libpcl_surface must inherit from this, in order to make sure we have a consistent API. The methods that we care about here are: More...
class  PFHEstimation
 PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset containing points and normals. More...
class  PFHEstimation< PointInT, PointNT, Eigen::MatrixXf >
 PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset containing points and normals. More...
class  PFHRGBEstimation
struct  PFHRGBSignature250
 A point structure representing the Point Feature Histogram with colors (PFHRGB). More...
struct  PFHSignature125
 A point structure representing the Point Feature Histogram (PFH). More...
class  PiecewiseLinearFunction
 This provides functionalities to efficiently return values for piecewise linear function. More...
class  PlanarPolygon
 PlanarPolygon represents a planar (2D) polygon, potentially in a 3D space. More...
class  PlanarPolygonFusion
 PlanarPolygonFusion takes a list of 2D planar polygons and attempts to reduce them to a minimum set that best represents the scene, based on various given comparators. More...
class  PlanarRegion
 PlanarRegion represents a set of points that lie in a plane. Inherits summary statistics about these points from Region3D, and summary statistics of a 3D collection of points. More...
class  PlaneClipper3D
 Implementation of a plane clipper in 3D. More...
class  PlaneCoefficientComparator
 PlaneCoefficientComparator is a Comparator that operates on plane coefficients, for use in planar segmentation. In conjunction with OrganizedConnectedComponentSegmentation, this allows planes to be segmented from organized data. More...
class  PlaneRefinementComparator
 PlaneRefinementComparator is a Comparator that operates on plane coefficients, for use in planar segmentation. In conjunction with OrganizedConnectedComponentSegmentation, this allows planes to be segmented from organized data. More...
class  PLYReader
 Point Cloud Data (PLY) file format reader. More...
class  PLYWriter
 Point Cloud Data (PLY) file format writer. More...
class  PointCloud
 PointCloud represents the base class in PCL for storing collections of 3D points. More...
class  PointCloud< Eigen::MatrixXf >
 PointCloud specialization for Eigen matrices. For advanced users only! More...
struct  PointCorrespondence3D
 Representation of a (possible) correspondence between two 3D points in two different coordinate frames (e.g. from feature matching) More...
struct  PointCorrespondence6D
 Representation of a (possible) correspondence between two points (e.g. from feature matching), that encode complete 6DOF transoformations. More...
class  PointDataAtOffset
 A datatype that enables type-correct comparisons. More...
struct  PointNormal
class  PointRepresentation
 PointRepresentation provides a set of methods for converting a point structs/object into an n-dimensional vector. More...
struct  PointSurfel
struct  PointWithRange
struct  PointWithScale
struct  PointWithViewpoint
 A point structure representing Euclidean xyz coordinates together with the viewpoint from which it was seen. More...
struct  PointXY
 A 2D point structure representing Euclidean xy coordinates. More...
struct  PointXYZ
 A point structure representing Euclidean xyz coordinates. (SSE friendly) More...
struct  PointXYZHSV
struct  PointXYZI
struct  PointXYZINormal
struct  PointXYZL
struct  PointXYZRGB
 A point structure representing Euclidean xyz coordinates, and the RGB color. More...
struct  PointXYZRGBA
struct  PointXYZRGBL
struct  PointXYZRGBNormal
class  Poisson
 The Poisson surface reconstruction algorithm. More...
class  PolynomialCalculationsT
 This provides some functionality for polynomials, like finding roots or approximating bivariate polynomials. More...
class  PosesFromMatches
 calculate 3D transformation based on point correspondencdes More...
class  PPFEstimation
 Class that calculates the "surflet" features for each pair in the given pointcloud. Please refer to the following publication for more details: B. Drost, M. Ulrich, N. Navab, S. Ilic Model Globally, Match Locally: Efficient and Robust 3D Object Recognition 2010 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 13-18 June 2010, San Francisco, CA. More...
class  PPFEstimation< PointInT, PointNT, Eigen::MatrixXf >
 Class that calculates the "surflet" features for each pair in the given pointcloud. Please refer to the following publication for more details: B. Drost, M. Ulrich, N. Navab, S. Ilic Model Globally, Match Locally: Efficient and Robust 3D Object Recognition 2010 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 13-18 June 2010, San Francisco, CA. More...
class  PPFHashMapSearch
class  PPFRegistration
 Class that registers two point clouds based on their sets of PPFSignatures. Please refer to the following publication for more details: B. Drost, M. Ulrich, N. Navab, S. Ilic Model Globally, Match Locally: Efficient and Robust 3D Object Recognition 2010 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 13-18 June 2010, San Francisco, CA. More...
class  PPFRGBEstimation
class  PPFRGBRegionEstimation
struct  PPFRGBSignature
 A point structure for storing the Point Pair Color Feature (PPFRGB) values. More...
struct  PPFSignature
 A point structure for storing the Point Pair Feature (PPF) values. More...
struct  PrincipalCurvatures
 A point structure representing the principal curvatures and their magnitudes. More...
class  PrincipalCurvaturesEstimation
 PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. More...
class  PrincipalCurvaturesEstimation< PointInT, PointNT, Eigen::MatrixXf >
 PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. More...
struct  PrincipalRadiiRSD
 A point structure representing the minimum and maximum surface radii (in meters) computed using RSD. More...
class  ProgressiveSampleConsensus
 RandomSampleConsensus represents an implementation of the RANSAC (RAndom SAmple Consensus) algorithm, as described in: "Matching with PROSAC – Progressive Sample Consensus", Chum, O. and Matas, J.G., CVPR, I: 220-226 2005. More...
class  ProjectInliers
 ProjectInliers uses a model and a set of inlier indices from a PointCloud to project them into a separate PointCloud. More...
class  ProjectInliers< sensor_msgs::PointCloud2 >
 ProjectInliers uses a model and a set of inlier indices from a PointCloud to project them into a separate PointCloud. More...
class  PyramidFeatureHistogram
 Class that compares two sets of features by using a multiscale representation of the features inside a pyramid. Each level of the pyramid offers information about the similarity of the two feature sets. More...
class  RadiusOutlierRemoval
 RadiusOutlierRemoval filters points in a cloud based on the number of neighbors they have. More...
class  RadiusOutlierRemoval< sensor_msgs::PointCloud2 >
 RadiusOutlierRemoval is a simple filter that removes outliers if the number of neighbors in a certain search radius is smaller than a given K. More...
class  RandomizedMEstimatorSampleConsensus
 RandomizedMEstimatorSampleConsensus represents an implementation of the RMSAC (Randomized M-estimator SAmple Consensus) algorithm, which basically adds a Td,d test (see RandomizedRandomSampleConsensus) to an MSAC estimator (see MEstimatorSampleConsensus). More...
class  RandomizedRandomSampleConsensus
 RandomizedRandomSampleConsensus represents an implementation of the RRANSAC (Randomized RAndom SAmple Consensus), as described in "Randomized RANSAC with Td,d test", O. Chum and J. Matas, Proc. British Machine Vision Conf. (BMVC '02), vol. 2, BMVA, pp. 448-457, 2002. More...
class  RandomSample
 RandomSample applies a random sampling with uniform probability. Based off Algorithm A from the paper "Faster Methods for Random Sampling" by Jeffrey Scott Vitter. The algorithm runs in O(N) and results in sorted indices http://www.ittc.ku.edu/~jsv/Papers/Vit84.sampling.pdf More...
class  RandomSample< sensor_msgs::PointCloud2 >
 RandomSample applies a random sampling with uniform probability. More...
class  RandomSampleConsensus
 RandomSampleConsensus represents an implementation of the RANSAC (RAndom SAmple Consensus) algorithm, as described in: "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Martin A. Fischler and Robert C. Bolles, Comm. Of the ACM 24: 381–395, June 1981. More...
class  RangeImage
 RangeImage is derived from pcl/PointCloud and provides functionalities with focus on situations where a 3D scene was captured from a specific view point. More...
class  RangeImageBorderExtractor
 Extract obstacle borders from range images, meaning positions where there is a transition from foreground to background. More...
class  RangeImagePlanar
 RangeImagePlanar is derived from the original range image and differs from it because it's not a spherical projection, but using a projection plane (as normal cameras do), therefore being better applicable for range sensors that already provide a range image by themselves (stereo cameras, ToF-cameras), so that a conversion to point cloud and then to a spherical range image becomes unnecessary. More...
struct  ReferenceFrame
class  Region3D
 Region3D represents summary statistics of a 3D collection of points. More...
class  Registration
 Registration represents the base registration class. All 3D registration methods should inherit from this class. More...
class  RegistrationVisualizer
 RegistrationVisualizer represents the base class for rendering the intermediate positions ocupied by the source point cloud during it's registration to the target point cloud. A registration algorithm is considered as input and it's covergence is rendered. More...
struct  RGB
 A structure representing RGB color information. More...
class  RGBPlaneCoefficientComparator
 RGBPlaneCoefficientComparator is a Comparator that operates on plane coefficients, for use in planar segmentation. Also takes into account RGB, so we can segmented different colored co-planar regions. In conjunction with OrganizedConnectedComponentSegmentation, this allows planes to be segmented from organized data. More...
class  RIFTEstimation
 RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud dataset containing points and intensity. For more information about the RIFT descriptor, see: More...
class  RIFTEstimation< PointInT, GradientT, Eigen::MatrixXf >
 RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud dataset containing points and intensity. For more information about the RIFT descriptor, see: More...
class  RSDEstimation
 RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local surface's curves) for a given point cloud dataset containing points and normals. More...
class  SACSegmentation
 SACSegmentation represents the Nodelet segmentation class for Sample Consensus methods and models, in the sense that it just creates a Nodelet wrapper for generic-purpose SAC-based segmentation. More...
class  SACSegmentationFromNormals
 SACSegmentationFromNormals represents the PCL nodelet segmentation class for Sample Consensus methods and models that require the use of surface normals for estimation. More...
class  SampleConsensus
 SampleConsensus represents the base class. All sample consensus methods must inherit from this class. More...
class  SampleConsensusInitialAlignment
 SampleConsensusInitialAlignment is an implementation of the initial alignment algorithm described in section IV of "Fast Point Feature Histograms (FPFH) for 3D Registration," Rusu et al. More...
class  SampleConsensusModel
 SampleConsensusModel represents the base model class. All sample consensus models must inherit from this class. More...
class  SampleConsensusModelCircle2D
 SampleConsensusModelCircle2D defines a model for 2D circle segmentation on the X-Y plane. More...
class  SampleConsensusModelCone
 SampleConsensusModelCone defines a model for 3D cone segmentation. The model coefficients are defined as: More...
class  SampleConsensusModelCylinder
 SampleConsensusModelCylinder defines a model for 3D cylinder segmentation. The model coefficients are defined as: More...
class  SampleConsensusModelFromNormals
 SampleConsensusModelFromNormals represents the base model class for models that require the use of surface normals for estimation. More...
class  SampleConsensusModelLine
 SampleConsensusModelLine defines a model for 3D line segmentation. The model coefficients are defined as: More...
class  SampleConsensusModelNormalParallelPlane
 SampleConsensusModelNormalParallelPlane defines a model for 3D plane segmentation using additional surface normal constraints. Basically this means that checking for inliers will not only involve a "distance to model" criterion, but also an additional "maximum angular deviation" between the plane's normal and the inlier points normals. In addition, the plane normal must lie parallel to an user-specified axis. More...
class  SampleConsensusModelNormalPlane
 SampleConsensusModelNormalPlane defines a model for 3D plane segmentation using additional surface normal constraints. Basically this means that checking for inliers will not only involve a "distance to model" criterion, but also an additional "maximum angular deviation" between the plane's normal and the inlier points normals. More...
class  SampleConsensusModelNormalSphere
 SampleConsensusModelNormalSphere defines a model for 3D sphere segmentation using additional surface normal constraints. Basically this means that checking for inliers will not only involve a "distance to model" criterion, but also an additional "maximum angular deviation" between the sphere's normal and the inlier points normals. More...
class  SampleConsensusModelParallelLine
 SampleConsensusModelParallelLine defines a model for 3D line segmentation using additional angular constraints. The model coefficients are defined as: More...
class  SampleConsensusModelParallelPlane
 SampleConsensusModelParallelPlane defines a model for 3D plane segmentation using additional angular constraints. The plane must be parallel to a user-specified axis (setAxis) within an user-specified angle threshold (setEpsAngle). More...
class  SampleConsensusModelPerpendicularPlane
 SampleConsensusModelPerpendicularPlane defines a model for 3D plane segmentation using additional angular constraints. The plane must be perpendicular to an user-specified axis (setAxis), up to an user-specified angle threshold (setEpsAngle). The model coefficients are defined as: More...
class  SampleConsensusModelPlane
 SampleConsensusModelPlane defines a model for 3D plane segmentation. The model coefficients are defined as: More...
class  SampleConsensusModelRegistration
 SampleConsensusModelRegistration defines a model for Point-To-Point registration outlier rejection. More...
class  SampleConsensusModelSphere
 SampleConsensusModelSphere defines a model for 3D sphere segmentation. The model coefficients are defined as: More...
class  SampleConsensusModelStick
 SampleConsensusModelStick defines a model for 3D stick segmentation. A stick is a line with an user given minimum/maximum width. The model coefficients are defined as: More...
class  ScopeTime
 Class to measure the time spent in a scope. More...
class  SegmentDifferences
 SegmentDifferences obtains the difference between two spatially aligned point clouds and returns the difference between them for a maximum given distance threshold. More...
struct  SetIfFieldExists
 A helper functor that can set a specific value in a field if the field exists. More...
struct  ShapeContext
 A point structure representing a Shape Context. More...
class  ShapeContext3DEstimation
 ShapeContext3DEstimation implements the 3D shape context descriptor as described in: More...
class  ShapeContext3DEstimation< PointInT, PointNT, Eigen::MatrixXf >
 ShapeContext3DEstimation implements the 3D shape context descriptor as described in: More...
struct  SHOT
 A point structure representing the generic Signature of Histograms of OrienTations (SHOT). More...
struct  SHOT1344
 A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+color. More...
struct  SHOT352
 A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape only. More...
class  SHOTColorEstimation
 SHOTColorEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points, normals and colors. More...
class  SHOTColorEstimation< PointInT, PointNT, Eigen::MatrixXf, PointRFT >
class  SHOTColorEstimationOMP
class  SHOTEstimation
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. More...
class  SHOTEstimation< PointInT, PointNT, Eigen::MatrixXf, PointRFT >
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. More...
class  SHOTEstimationBase
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. More...
class  SHOTEstimationOMP
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. More...
class  SHOTLocalReferenceFrameEstimation
 SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. More...
class  SHOTLocalReferenceFrameEstimationOMP
 SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. More...
class  SIFTKeypoint
 SIFTKeypoint detects the Scale Invariant Feature Transform keypoints for a given point cloud dataset containing points and intensity. This implementation adapts the original algorithm from images to point clouds. More...
struct  SIFTKeypointFieldSelector
struct  SIFTKeypointFieldSelector< PointNormal >
struct  SIFTKeypointFieldSelector< PointXYZ >
struct  SIFTKeypointFieldSelector< PointXYZRGB >
struct  SIFTKeypointFieldSelector< PointXYZRGBA >
class  SmoothedSurfacesKeypoint
 Based on the paper: Xinju Li and Igor Guskov Multi-scale features for approximate alignment of point-based surfaces Proceedings of the third Eurographics symposium on Geometry processing July 2005, Vienna, Austria. More...
class  SolverDidntConvergeException
 An exception that is thrown when the non linear solver didn't converge. More...
class  SpinImageEstimation
 Estimates spin-image descriptors in the given input points. More...
class  SpinImageEstimation< PointInT, PointNT, Eigen::MatrixXf >
 Estimates spin-image descriptors in the given input points. More...
class  StaticRangeCoder
 StaticRangeCoder compression class More...
class  StatisticalMultiscaleInterestRegionExtraction
 Class for extracting interest regions from unstructured point clouds, based on a multi scale statistical approach. Please refer to the following publications for more details: Ranjith Unnikrishnan and Martial Hebert Multi-Scale Interest Regions from Unorganized Point Clouds Workshop on Search in 3D (S3D), IEEE Conf. on Computer Vision and Pattern Recognition (CVPR) June, 2008. More...
class  StatisticalOutlierRemoval
 StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data. More...
class  StatisticalOutlierRemoval< sensor_msgs::PointCloud2 >
 StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data. For more information check: More...
class  StopWatch
 Simple stopwatch. More...
class  SurfaceReconstruction
 SurfaceReconstruction represents a base surface reconstruction class. All surface reconstruction methods take in a point cloud and generate a new surface from it, by either re-sampling the data or generating new data altogether. These methods are thus not preserving the topology of the original data. More...
class  SurfelSmoothing
class  Synchronizer
struct  TexMaterial
class  TextureMapping
 The texture mapping algorithm. More...
struct  TextureMesh
class  TfQuadraticXYZComparison
 A comparison whether the (x,y,z) components of a given point satisfy (p'Ap + 2v'p + c [OP] 0). Here [OP] stands for the defined pcl::ComparisonOps, i.e. for GT, GE, LT, LE or EQ; p = (x,y,z) is a point of the point cloud; A is 3x3 matrix; v is the 3x1 vector; c is a scalar. More...
class  TimeTrigger
 Timer class that invokes registered callback methods periodically. More...
class  TransformationFromCorrespondences
 Calculates a transformation based on corresponding 3D points. More...
class  UnhandledPointTypeException
class  UniformSampling
 UniformSampling assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More...
class  UniqueShapeContext
 UniqueShapeContext implements the Unique Shape Descriptor described here: More...
class  UniqueShapeContext< PointInT, Eigen::MatrixXf, PointRFT >
 UniqueShapeContext implements the Unique Shape Descriptor described here: More...
class  UnorganizedPointCloudException
 An exception that is thrown when an organized point cloud is needed but not provided. More...
class  VectorAverage
 Calculates the weighted average and the covariance matrix. More...
class  VFHClassifierNN
 Utility class for nearest neighbor search based classification of VFH features. More...
class  VFHEstimation
 VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud dataset containing points and normals. The default VFH implementation uses 45 binning subdivisions for each of the three extended FPFH values, plus another 45 binning subdivisions for the distances between each point and the centroid and 128 binning subdivisions for the viewpoint component, which results in a 308-byte array of float values. These are stored in a pcl::VFHSignature308 point type. A major difference between the PFH/FPFH descriptors and VFH, is that for a given point cloud dataset, only a single VFH descriptor will be estimated (vfhs->points.size() should be 1), while the resultant PFH/FPFH data will have the same number of entries as the number of points in the cloud. More...
struct  VFHSignature308
 A point structure representing the Viewpoint Feature Histogram (VFH). More...
class  VoxelGrid
 VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More...
class  VoxelGrid< sensor_msgs::PointCloud2 >
 VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More...
class  VTKUtils
class  WarpPointRigid
class  WarpPointRigid3D
class  WarpPointRigid6D
struct  xNdCopyEigenPointFunctor
 Helper functor structure for copying data between an Eigen::VectorXf and a PointT. More...
struct  xNdCopyPointEigenFunctor
 Helper functor structure for copying data between an Eigen::VectorXf and a PointT. More...

Typedefs

typedef Eigen::Map
< Eigen::Array3f > 
Array3fMap
typedef const Eigen::Map
< const Eigen::Array3f > 
Array3fMapConst
typedef Eigen::Map
< Eigen::Array4f,
Eigen::Aligned > 
Array4fMap
typedef const Eigen::Map
< const Eigen::Array4f,
Eigen::Aligned > 
Array4fMapConst
typedef BivariatePolynomialT
< float > 
BivariatePolynomial
typedef BivariatePolynomialT
< double > 
BivariatePolynomiald
typedef std::bitset< 32 > BorderTraits
 Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for BorderDescription::traits.
typedef pcl::PointCloud
< pcl::PointXYZRGB
cc
typedef pcl::PointCloud
< pcl::PointXYZRGBA
cca
typedef std::vector
< pcl::Correspondence,
Eigen::aligned_allocator
< pcl::Correspondence > > 
Correspondences
typedef boost::shared_ptr
< const Correspondences
CorrespondencesConstPtr
typedef boost::shared_ptr
< Correspondences
CorrespondencesPtr
typedef pcl::PointCloud
< pcl::PointXYZI
gc
typedef boost::shared_ptr
< const std::vector< int > > 
IndicesConstPtr
typedef boost::shared_ptr
< std::vector< int > > 
IndicesPtr
typedef pcl::PointCloud
< pcl::PointXYZ
mc
typedef std::vector
< detail::FieldMapping
MsgFieldMap
typedef std::vector
< PointCorrespondence3D,
Eigen::aligned_allocator
< PointCorrespondence3D > > 
PointCorrespondences3DVector
typedef std::vector
< PointCorrespondence6D,
Eigen::aligned_allocator
< PointCorrespondence6D > > 
PointCorrespondences6DVector
typedef
PolynomialCalculationsT< float > 
PolynomialCalculations
typedef
PolynomialCalculationsT
< double > 
PolynomialCalculationsd
typedef boost::shared_ptr
< pcl::TextureMesh const > 
TextureMeshConstPtr
typedef boost::shared_ptr
< pcl::TextureMesh
TextureMeshPtr
typedef Eigen::Map
< Eigen::Vector3f > 
Vector3fMap
typedef const Eigen::Map
< const Eigen::Vector3f > 
Vector3fMapConst
typedef Eigen::Map
< Eigen::Vector4f,
Eigen::Aligned > 
Vector4fMap
typedef const Eigen::Map
< const Eigen::Vector4f,
Eigen::Aligned > 
Vector4fMapConst
typedef VectorAverage< float, 2 > VectorAverage2f
typedef VectorAverage< float, 3 > VectorAverage3f
typedef VectorAverage< float, 4 > VectorAverage4f

Enumerations

enum  BorderTrait {
  BORDER_TRAIT__OBSTACLE_BORDER, BORDER_TRAIT__SHADOW_BORDER, BORDER_TRAIT__VEIL_POINT, BORDER_TRAIT__SHADOW_BORDER_TOP,
  BORDER_TRAIT__SHADOW_BORDER_RIGHT, BORDER_TRAIT__SHADOW_BORDER_BOTTOM, BORDER_TRAIT__SHADOW_BORDER_LEFT, BORDER_TRAIT__OBSTACLE_BORDER_TOP,
  BORDER_TRAIT__OBSTACLE_BORDER_RIGHT, BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM, BORDER_TRAIT__OBSTACLE_BORDER_LEFT, BORDER_TRAIT__VEIL_POINT_TOP,
  BORDER_TRAIT__VEIL_POINT_RIGHT, BORDER_TRAIT__VEIL_POINT_BOTTOM, BORDER_TRAIT__VEIL_POINT_LEFT
}
 Specification of the fields for BorderDescription::traits. More...
enum  NormType {
  L1, L2_SQR, L2, LINF,
  JM, B, SUBLINEAR, CS,
  DIV, PF, K, KL,
  HIK
}
 Enum that defines all the types of norms available. More...
enum  SacModel {
  SACMODEL_PLANE, SACMODEL_LINE, SACMODEL_CIRCLE2D, SACMODEL_CIRCLE3D,
  SACMODEL_SPHERE, SACMODEL_CYLINDER, SACMODEL_CONE, SACMODEL_TORUS,
  SACMODEL_PARALLEL_LINE, SACMODEL_PERPENDICULAR_PLANE, SACMODEL_PARALLEL_LINES, SACMODEL_NORMAL_PLANE,
  SACMODEL_NORMAL_SPHERE, SACMODEL_REGISTRATION, SACMODEL_PARALLEL_PLANE, SACMODEL_NORMAL_PARALLEL_PLANE,
  SACMODEL_STICK
}

Functions

template<typename PointT >
void approximatePolygon (const PlanarPolygon< PointT > &polygon, PlanarPolygon< PointT > &approx_polygon, float threshold, bool refine=false, bool closed=true)
 see approximatePolygon2D
template<typename PointT >
void approximatePolygon2D (const typename PointCloud< PointT >::VectorType &polygon, typename PointCloud< PointT >::VectorType &approx_polygon, float threshold, bool refine=false, bool closed=true)
 returns an approximate polygon to given 2D contour. Uses just X and Y values.
template<typename FloatVectorT >
float B_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the B norm of the vector between two points.
bool compareLabeledPointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b)
 Sort clusters method (for std::sort).
bool comparePointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b)
 Sort clusters method (for std::sort).
template<typename PointT >
unsigned int compute3DCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector.
template<typename PointT >
unsigned int compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Vector4f &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector.
template<typename PointT >
unsigned int compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Vector4f &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector.
template<typename Matrix , typename Vector >
void computeCorrespondingEigenVector (const Matrix &mat, const typename Matrix::Scalar &eigenvalue, Vector &eigenvector)
 determines the corresponding eigenvector to the given eigenvalue of the symmetric positive semi definite input matrix
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 Compute the 3x3 covariance matrix of a given set of points. The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeNormalizedCovarianceMatrix.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 Compute the 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeNormalizedCovarianceMatrix.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 Compute the 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeNormalizedCovarianceMatrix.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3f &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3f &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3f &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3d &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3d &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3d &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 Compute normalized the 3x3 covariance matrix of a given set of points. The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of points in the point cloud. For small number of points, or if you want explicitely the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function.
template<typename PointT >
unsigned int computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 Compute the normalized 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function.
template<typename PointT >
unsigned int computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 Compute the normalized 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function.
template<typename PointT >
unsigned int computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3f &covariance_matrix, Eigen::Vector4f &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3f &covariance_matrix, Eigen::Vector4f &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3f &covariance_matrix, Eigen::Vector4f &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3d &covariance_matrix, Eigen::Vector4d &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3d &covariance_matrix, Eigen::Vector4d &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
unsigned int computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3d &covariance_matrix, Eigen::Vector4d &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.
template<typename PointT >
void computeNDCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::VectorXf &centroid)
 General, all purpose nD centroid estimation for a set of points using their indices.
template<typename PointT >
void computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::VectorXf &centroid)
 General, all purpose nD centroid estimation for a set of points using their indices.
template<typename PointT >
void computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::VectorXf &centroid)
 General, all purpose nD centroid estimation for a set of points using their indices.
PCL_EXPORTS bool computePairFeatures (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, float &f1, float &f2, float &f3, float &f4)
 Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals.
template<typename PointT >
void computePointNormal (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &plane_parameters, float &curvature)
 Compute the Least-Squares plane fit for a given set of points, and return the estimated plane parameters together with the surface curvature.
template<typename PointT >
void computePointNormal (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Vector4f &plane_parameters, float &curvature)
 Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature.
PCL_EXPORTS bool computePPFPairFeature (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, float &f1, float &f2, float &f3, float &f4)
PCL_EXPORTS bool computeRGBPairFeatures (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4i &colors1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, const Eigen::Vector4i &colors2, float &f1, float &f2, float &f3, float &f4, float &f5, float &f6, float &f7)
template<typename Matrix , typename Roots >
void computeRoots (const Matrix &m, Roots &roots)
 computes the roots of the characteristic polynomial of the input matrix m, which are the eigenvalues
template<typename Scalar , typename Roots >
void computeRoots2 (const Scalar &b, const Scalar &c, Roots &roots)
 Compute the roots of a quadratic polynom x^2 + b*x + c = 0.
template<typename PointInT , typename PointNT , typename PointOutT >
Eigen::MatrixXf computeRSD (boost::shared_ptr< const pcl::PointCloud< PointInT > > &surface, boost::shared_ptr< const pcl::PointCloud< PointNT > > &normals, const std::vector< int > &indices, double max_dist, int nr_subdiv, double plane_radius, PointOutT &radii, bool compute_histogram=false)
 Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.
template<typename PointNT , typename PointOutT >
Eigen::MatrixXf computeRSD (boost::shared_ptr< const pcl::PointCloud< PointNT > > &normals, const std::vector< int > &indices, const std::vector< float > &sqr_dists, double max_dist, int nr_subdiv, double plane_radius, PointOutT &radii, bool compute_histogram=false)
 Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.
template<typename PointT >
pcl::PointCloud
< pcl::VFHSignature308 >::Ptr 
computeVFH (typename PointCloud< PointT >::ConstPtr cloud, double radius)
 Helper function to extract the VFH feature describing the given point cloud.
template<typename PointIn1T , typename PointIn2T , typename PointOutT >
void concatenateFields (const pcl::PointCloud< PointIn1T > &cloud1_in, const pcl::PointCloud< PointIn2T > &cloud2_in, pcl::PointCloud< PointOutT > &cloud_out)
 Concatenate two datasets representing different fields.
PCL_EXPORTS bool concatenateFields (const sensor_msgs::PointCloud2 &cloud1_in, const sensor_msgs::PointCloud2 &cloud2_in, sensor_msgs::PointCloud2 &cloud_out)
 Concatenate two datasets representing different fields.
PCL_EXPORTS bool concatenatePointCloud (const sensor_msgs::PointCloud2 &cloud1, const sensor_msgs::PointCloud2 &cloud2, sensor_msgs::PointCloud2 &cloud_out)
 Concatenate two sensor_msgs::PointCloud2.
template<typename PointInT , typename PointOutT >
void copyPointCloud (const pcl::PointCloud< PointInT > &cloud_in, pcl::PointCloud< PointOutT > &cloud_out)
 Copy all the fields from a given point cloud into a new point cloud.
PCL_EXPORTS void copyPointCloud (const sensor_msgs::PointCloud2 &cloud_in, const std::vector< int > &indices, sensor_msgs::PointCloud2 &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
PCL_EXPORTS void copyPointCloud (const sensor_msgs::PointCloud2 &cloud_in, sensor_msgs::PointCloud2 &cloud_out)
 Copy fields and point cloud data from cloud_in to cloud_out.
template<typename PointT >
void copyPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, pcl::PointCloud< PointT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointT >
void copyPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int, Eigen::aligned_allocator< int > > &indices, pcl::PointCloud< PointT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointInT , typename PointOutT >
void copyPointCloud (const pcl::PointCloud< PointInT > &cloud_in, const std::vector< int > &indices, pcl::PointCloud< PointOutT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointInT , typename PointOutT >
void copyPointCloud (const pcl::PointCloud< PointInT > &cloud_in, const std::vector< int, Eigen::aligned_allocator< int > > &indices, pcl::PointCloud< PointOutT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointT >
void copyPointCloud (const pcl::PointCloud< PointT > &cloud_in, const PointIndices &indices, pcl::PointCloud< PointT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointInT , typename PointOutT >
void copyPointCloud (const pcl::PointCloud< PointInT > &cloud_in, const PointIndices &indices, pcl::PointCloud< PointOutT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointT >
void copyPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< pcl::PointIndices > &indices, pcl::PointCloud< PointT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename PointInT , typename PointOutT >
void copyPointCloud (const pcl::PointCloud< PointInT > &cloud_in, const std::vector< pcl::PointIndices > &indices, pcl::PointCloud< PointOutT > &cloud_out)
 Extract the indices of a given point cloud as a new point cloud.
template<typename Type >
void copyStringValue (const std::string &st, sensor_msgs::PointCloud2 &cloud, unsigned int point_index, unsigned int field_idx, unsigned int fields_count)
 Copy one single value of type T (uchar, char, uint, int, float, double, ...) from a string.
template<>
void copyStringValue< int8_t > (const std::string &st, sensor_msgs::PointCloud2 &cloud, unsigned int point_index, unsigned int field_idx, unsigned int fields_count)
template<>
void copyStringValue< uint8_t > (const std::string &st, sensor_msgs::PointCloud2 &cloud, unsigned int point_index, unsigned int field_idx, unsigned int fields_count)
virtual void copyToFloatArray (const SHOT &p, float *out) const
template<typename Type >
void copyValueString (const sensor_msgs::PointCloud2 &cloud, const unsigned int point_index, const int point_size, const unsigned int field_idx, const unsigned int fields_count, std::ostream &stream)
 insers a value of type Type (uchar, char, uint, int, float, double, ...) into a stringstream.
template<>
void copyValueString< int8_t > (const sensor_msgs::PointCloud2 &cloud, const unsigned int point_index, const int point_size, const unsigned int field_idx, const unsigned int fields_count, std::ostream &stream)
template<>
void copyValueString< uint8_t > (const sensor_msgs::PointCloud2 &cloud, const unsigned int point_index, const int point_size, const unsigned int field_idx, const unsigned int fields_count, std::ostream &stream)
template<typename PointT >
void createMapping (const std::vector< sensor_msgs::PointField > &msg_fields, MsgFieldMap &field_map)
template<typename FloatVectorT >
float CS_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the CS norm of the vector between two points.
float deg2rad (float alpha)
 Convert an angle from degrees to radians.
double deg2rad (double alpha)
 Convert an angle from degrees to radians.
template<typename PointT >
void demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const Eigen::Vector4f &centroid, pcl::PointCloud< PointT > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation.
template<typename PointT >
void demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Vector4f &centroid, pcl::PointCloud< PointT > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation.
template<typename PointT >
void demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix.
template<typename PointT >
void demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix.
template<typename PointT >
void demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix.
template<typename Matrix >
Matrix::Scalar determinant3x3Matrix (const Matrix &matrix)
template<typename FloatVectorT >
float Div_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the div norm of the vector between two points.
template<typename Matrix , typename Vector >
void eigen22 (const Matrix &mat, typename Matrix::Scalar &eigenvalue, Vector &eigenvector)
 determine the smallest eigenvalue and its corresponding eigenvector
template<typename Matrix , typename Vector >
void eigen22 (const Matrix &mat, Matrix &eigenvectors, Vector &eigenvalues)
 determine the smallest eigenvalue and its corresponding eigenvector
template<typename Matrix , typename Vector >
void eigen33 (const Matrix &mat, typename Matrix::Scalar &eigenvalue, Vector &eigenvector)
 determines the eigenvector and eigenvalue of the smallest eigenvalue of the symmetric positive semi definite input matrix
template<typename Matrix , typename Vector >
void eigen33 (const Matrix &mat, Vector &evals)
 determines the eigenvalues of the symmetric positive semi definite input matrix
template<typename Matrix , typename Vector >
void eigen33 (const Matrix &mat, Matrix &evecs, Vector &evals)
 determines the eigenvalues and corresponding eigenvectors of the symmetric positive semi definite input matrix
template<typename PointType1 , typename PointType2 >
float euclideanDistance (const PointType1 &p1, const PointType2 &p2)
 Calculate the euclidean distance between the two given points.
template<typename PointT >
void extractEuclideanClusters (const PointCloud< PointT > &cloud, const boost::shared_ptr< search::Search< PointT > > &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)())
 Decompose a region of space into clusters based on the Euclidean distance between points.
template<typename PointT >
void extractEuclideanClusters (const PointCloud< PointT > &cloud, const std::vector< int > &indices, const boost::shared_ptr< search::Search< PointT > > &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)())
 Decompose a region of space into clusters based on the Euclidean distance between points.
template<typename PointT , typename Normal >
void extractEuclideanClusters (const PointCloud< PointT > &cloud, const PointCloud< Normal > &normals, float tolerance, const boost::shared_ptr< KdTree< PointT > > &tree, std::vector< PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)())
 Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation.
template<typename PointT , typename Normal >
void extractEuclideanClusters (const PointCloud< PointT > &cloud, const PointCloud< Normal > &normals, const std::vector< int > &indices, const boost::shared_ptr< KdTree< PointT > > &tree, float tolerance, std::vector< PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)())
 Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation.
template<typename PointT >
void extractLabeledEuclideanClusters (const PointCloud< PointT > &cloud, const boost::shared_ptr< search::Search< PointT > > &tree, float tolerance, std::vector< std::vector< PointIndices > > &labeled_clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)(), unsigned int max_label=(std::numeric_limits< int >::max))
 Decompose a region of space into clusters based on the Euclidean distance between points.
template<typename PointT , typename Scalar >
void flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 4, 1 > &normal)
 Flip (in place) the estimated normal of a point towards a given viewpoint.
template<typename PointT , typename Scalar >
void flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 3, 1 > &normal)
 Flip (in place) the estimated normal of a point towards a given viewpoint.
template<typename PointT >
void flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, float &nx, float &ny, float &nz)
 Flip (in place) the estimated normal of a point towards a given viewpoint.
template<typename Sequence , typename F >
void for_each_type (F f)
template<typename PointT >
void fromROSMsg (const sensor_msgs::PointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map)
 Convert a PointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
template<typename PointT >
void fromROSMsg (const sensor_msgs::PointCloud2 &msg, pcl::PointCloud< PointT > &cloud)
 Convert a PointCloud2 binary data blob into a pcl::PointCloud<T> object.
Eigen::MatrixXi getAllNeighborCellIndices ()
 Get the relative cell indices of all the 26 neighbors.
void getAllPcdFilesInDirectory (const std::string &directory, std::vector< std::string > &file_names)
 Find all *.pcd files in the directory and return them sorted.
double getAngle3D (const Eigen::Vector4f &v1, const Eigen::Vector4f &v2)
 Compute the smallest angle between two vectors in the [ 0, PI ) interval in 3D.
template<typename PointT >
void getApproximateIndices (const typename pcl::PointCloud< PointT >::Ptr &cloud_in, const typename pcl::PointCloud< PointT >::Ptr &cloud_ref, std::vector< int > &indices)
 Get a set of approximate indices for a given point cloud into a reference point cloud. The coordinates of the two point clouds can differ. The method uses an internal KdTree for finding the closest neighbors from cloud_in in cloud_ref.
template<typename Point1T , typename Point2T >
void getApproximateIndices (const typename pcl::PointCloud< Point1T >::Ptr &cloud_in, const typename pcl::PointCloud< Point2T >::Ptr &cloud_ref, std::vector< int > &indices)
 Get a set of approximate indices for a given point cloud into a reference point cloud. The coordinates of the two point clouds can differ. The method uses an internal KdTree for finding the closest neighbors from cloud_in in cloud_ref.
template<typename PointT >
double getCircumcircleRadius (const PointT &pa, const PointT &pb, const PointT &pc)
 Compute the radius of a circumscribed circle for a triangle formed of three points pa, pb, and pc.
PCL_EXPORTS bool getEigenAsPointCloud (Eigen::MatrixXf &in, sensor_msgs::PointCloud2 &out)
 Copy the XYZ dimensions from an Eigen MatrixXf into a sensor_msgs::PointCloud2 message.
void getEulerAngles (const Eigen::Affine3f &t, float &roll, float &pitch, float &yaw)
 Extract the Euler angles (XYZ-convention) from the given transformation.
template<int N>
void getFeaturePointCloud (const std::vector< Eigen::MatrixXf, Eigen::aligned_allocator< Eigen::MatrixXf > > &histograms2D, PointCloud< Histogram< N > > &histogramsPC)
 Transform a list of 2D matrices into a point cloud containing the values in a vector (Histogram<N>). Can be used to transform the 2D histograms obtained in RSDEstimation into a point cloud.
int getFieldIndex (const sensor_msgs::PointCloud2 &cloud, const std::string &field_name)
 Get the index of a specified field (i.e., dimension/channel)
template<typename PointT >
int getFieldIndex (const pcl::PointCloud< PointT > &cloud, const std::string &field_name, std::vector< sensor_msgs::PointField > &fields)
 Get the index of a specified field (i.e., dimension/channel)
template<typename PointT >
int getFieldIndex (const std::string &field_name, std::vector< sensor_msgs::PointField > &fields)
 Get the index of a specified field (i.e., dimension/channel)
template<typename PointT >
void getFields (const pcl::PointCloud< PointT > &cloud, std::vector< sensor_msgs::PointField > &fields)
 Get the list of available fields (i.e., dimension/channel)
template<typename PointT >
void getFields (std::vector< sensor_msgs::PointField > &fields)
 Get the list of available fields (i.e., dimension/channel)
int getFieldSize (const int datatype)
 Obtains the size of a specific field data type in bytes.
template<typename PointT >
std::string getFieldsList (const pcl::PointCloud< PointT > &cloud)
 Get the list of all fields available in a given cloud.
std::string getFieldsList (const sensor_msgs::PointCloud2 &cloud)
 Get the available point cloud fields as a space separated string.
PCL_EXPORTS void getFieldsSizes (const std::vector< sensor_msgs::PointField > &fields, std::vector< int > &field_sizes)
 Obtain a vector with the sizes of all valid fields (e.g., not "_")
int getFieldType (const int size, char type)
 Obtains the type of the PointField from a specific size and type.
char getFieldType (const int type)
 Obtains the type of the PointField from a specific PointField as a char.
std::string getFileExtension (const std::string &input)
 Get the file extension from the given string (the remaining string after the last '.')
std::string getFilenameWithoutExtension (const std::string &input)
 Remove the extension from the given string and return only the filename (everything before the last '.')
std::string getFilenameWithoutPath (const std::string &input)
 Remove the path from the given string and return only the filename (the remaining string after the last '/')
Eigen::MatrixXi getHalfNeighborCellIndices ()
 Get the relative cell indices of the "upper half" 13 neighbors.
template<typename PointT >
void getMaxDistance (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4f &pivot_pt, Eigen::Vector4f &max_pt)
 Get the point at maximum distance from a given point and a given pointcloud.
template<typename PointT >
void getMaxDistance (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4f &pivot_pt, Eigen::Vector4f &max_pt)
 Get the point at maximum distance from a given point and a given pointcloud.
template<typename PointT >
double getMaxSegment (const pcl::PointCloud< PointT > &cloud, PointT &pmin, PointT &pmax)
 Obtain the maximum segment in a given set of points, and return the minimum and maximum points.
template<typename PointT >
double getMaxSegment (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, PointT &pmin, PointT &pmax)
 Obtain the maximum segment in a given set of points, and return the minimum and maximum points.
void getMeanStd (const std::vector< float > &values, double &mean, double &stddev)
 Compute both the mean and the standard deviation of an array of values.
PCL_EXPORTS void getMeanStdDev (const std::vector< float > &values, double &mean, double &stddev)
 Compute both the mean and the standard deviation of an array of values.
template<typename PointT >
void getMinMax (const PointT &histogram, int len, float &min_p, float &max_p)
 Get the minimum and maximum values on a point histogram.
PCL_EXPORTS void getMinMax (const sensor_msgs::PointCloud2 &cloud, int idx, const std::string &field_name, float &min_p, float &max_p)
 Get the minimum and maximum values on a point histogram.
PCL_EXPORTS void getMinMax3D (const sensor_msgs::PointCloud2ConstPtr &cloud, int x_idx, int y_idx, int z_idx, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt)
 Obtain the maximum and minimum points in 3D from a given point cloud.
PCL_EXPORTS void getMinMax3D (const sensor_msgs::PointCloud2ConstPtr &cloud, int x_idx, int y_idx, int z_idx, const std::string &distance_field_name, float min_distance, float max_distance, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt, bool limit_negative=false)
 Obtain the maximum and minimum points in 3D from a given point cloud.
template<typename PointT >
void getMinMax3D (const pcl::PointCloud< PointT > &cloud, PointT &min_pt, PointT &max_pt)
 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.
template<typename PointT >
void getMinMax3D (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt)
 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.
template<typename PointT >
void getMinMax3D (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt)
 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.
template<typename PointT >
void getMinMax3D (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt)
 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.
template<typename PointT >
void getMinMax3D (const typename pcl::PointCloud< PointT >::ConstPtr &cloud, const std::string &distance_field_name, float min_distance, float max_distance, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt, bool limit_negative=false)
 Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud, without considering points outside of a distance threshold from the laser origin.
PCL_EXPORTS bool getPointCloudAsEigen (const sensor_msgs::PointCloud2 &in, Eigen::MatrixXf &out)
 Copy the XYZ dimensions of a sensor_msgs::PointCloud2 into Eigen format.
template<typename PointT >
void getPointCloudDifference (const pcl::PointCloud< PointT > &src, const pcl::PointCloud< PointT > &tgt, double threshold, const boost::shared_ptr< pcl::search::Search< PointT > > &tree, pcl::PointCloud< PointT > &output)
 Obtain the difference between two aligned point clouds as another point cloud, given a distance threshold.
template<typename PointT >
void getPointsInBox (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &min_pt, Eigen::Vector4f &max_pt, std::vector< int > &indices)
 Get a set of points residing in a box given its bounds.
void getRejectedQueryIndices (const pcl::Correspondences &correspondences_before, const pcl::Correspondences &correspondences_after, std::vector< int > &indices, bool presorting_required=true)
 Get the query points of correspondences that are present in one correspondence vector but not in the other, e.g., to compare correspondences before and after rejection.
double getTime ()
void getTransformation (float x, float y, float z, float roll, float pitch, float yaw, Eigen::Affine3f &t)
 Create a transformation from the given translation and Euler angles (XYZ-convention)
Eigen::Affine3f getTransformation (float x, float y, float z, float roll, float pitch, float yaw)
 Create a transformation from the given translation and Euler angles (XYZ-convention)
void getTransformationFromTwoUnitVectors (const Eigen::Vector3f &y_direction, const Eigen::Vector3f &z_axis, Eigen::Affine3f &transformation)
 Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
Eigen::Affine3f getTransformationFromTwoUnitVectors (const Eigen::Vector3f &y_direction, const Eigen::Vector3f &z_axis)
 Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void getTransformationFromTwoUnitVectorsAndOrigin (const Eigen::Vector3f &y_direction, const Eigen::Vector3f &z_axis, const Eigen::Vector3f &origin, Eigen::Affine3f &transformation)
 Get the transformation that will translate orign to (0,0,0) and rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void getTransFromUnitVectorsXY (const Eigen::Vector3f &x_axis, const Eigen::Vector3f &y_direction, Eigen::Affine3f &transformation)
 Get the unique 3D rotation that will rotate x_axis into (1,0,0) and y_direction into a vector with z=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
Eigen::Affine3f getTransFromUnitVectorsXY (const Eigen::Vector3f &x_axis, const Eigen::Vector3f &y_direction)
 Get the unique 3D rotation that will rotate x_axis into (1,0,0) and y_direction into a vector with z=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void getTransFromUnitVectorsZY (const Eigen::Vector3f &z_axis, const Eigen::Vector3f &y_direction, Eigen::Affine3f &transformation)
 Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
Eigen::Affine3f getTransFromUnitVectorsZY (const Eigen::Vector3f &z_axis, const Eigen::Vector3f &y_direction)
 Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)
void getTranslationAndEulerAngles (const Eigen::Affine3f &t, float &x, float &y, float &z, float &roll, float &pitch, float &yaw)
template<typename FloatVectorT >
float HIK_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the HIK norm of the vector between two points.
template<typename Matrix >
Matrix::Scalar invert2x2 (const Matrix &matrix, Matrix &inverse)
 Calculate the inverse of a 2x2 matrix.
template<typename Matrix >
Matrix::Scalar invert3x3Matrix (const Matrix &matrix, Matrix &inverse)
 Calculate the inverse of a general 3x3 matrix.
template<typename Matrix >
Matrix::Scalar invert3x3SymMatrix (const Matrix &matrix, Matrix &inverse)
 Calculate the inverse of a 3x3 symmetric matrix.
bool isBetterCorrespondence (const Correspondence &pc1, const Correspondence &pc2)
 Comparator to enable us to sort a vector of PointCorrespondences according to their scores using std::sort (begin(), end(), isBetterCorrespondence);.
template<typename PointT >
bool isFinite (const PointT &pt)
template<>
bool isFinite< pcl::Normal > (const pcl::Normal &n)
template<typename PointT >
bool isPointIn2DPolygon (const PointT &point, const pcl::PointCloud< PointT > &polygon)
 General purpose method for checking if a 3D point is inside or outside a given 2D polygon.
template<typename Type >
bool isValueFinite (const sensor_msgs::PointCloud2 &cloud, const unsigned int point_index, const int point_size, const unsigned int field_idx, const unsigned int fields_count)
 Check whether a given value of type Type (uchar, char, uint, int, float, double, ...) is finite or not.
bool 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.
template<typename PointT >
bool isXYPointIn2DXYPolygon (const PointT &point, const pcl::PointCloud< PointT > &polygon)
 Check if a 2d point (X and Y coordinates considered only!) is inside or outside a given polygon. This method assumes that both the point and the polygon are projected onto the XY plane.
template<typename FloatVectorT >
float JM_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the JM norm of the vector between two points.
template<typename FloatVectorT >
float K_Norm (FloatVectorT A, FloatVectorT B, int dim, float P1, float P2)
 Compute the K norm of the vector between two points.
template<typename FloatVectorT >
float KL_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the KL between two discrete probability density functions.
template<typename FloatVectorT >
float L1_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the L1 norm of the vector between two points.
template<typename FloatVectorT >
float L2_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the L2 norm of the vector between two points.
template<typename FloatVectorT >
float L2_Norm_SQR (FloatVectorT A, FloatVectorT B, int dim)
 Compute the squared L2 norm of the vector between two points.
PCL_EXPORTS void lineToLineSegment (const Eigen::VectorXf &line_a, const Eigen::VectorXf &line_b, Eigen::Vector4f &pt1_seg, Eigen::Vector4f &pt2_seg)
 Get the shortest 3D segment between two 3D lines.
PCL_EXPORTS bool lineWithLineIntersection (const Eigen::VectorXf &line_a, const Eigen::VectorXf &line_b, Eigen::Vector4f &point, double sqr_eps=1e-4)
 Get the intersection of a two 3D lines in space as a 3D point.
PCL_EXPORTS bool lineWithLineIntersection (const pcl::ModelCoefficients &line_a, const pcl::ModelCoefficients &line_b, Eigen::Vector4f &point, double sqr_eps=1e-4)
 Get the intersection of a two 3D lines in space as a 3D point.
template<typename FloatVectorT >
float Linf_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the L-infinity norm of the vector between two points.
template<typename Derived >
void loadBinary (Eigen::MatrixBase< Derived > const &matrix, std::istream &file)
 Read a matrix from an input stream.
PCL_EXPORTS unsigned int lzfCompress (const void *const in_data, unsigned int in_len, void *out_data, unsigned int out_len)
 Compress in_len bytes stored at the memory block starting at in_data and write the result to out_data, up to a maximum length of out_len bytes using Marc Lehmann's LZF algorithm.
PCL_EXPORTS unsigned int lzfDecompress (const void *const in_data, unsigned int in_len, void *out_data, unsigned int out_len)
 Decompress data compressed with the lzfCompress function and stored at location in_data and length in_len. The result will be stored at out_data up to a maximum of out_len characters.
float normAngle (float alpha)
 Normalize an angle to (-PI, PI].
std::ostream & operator<< (std::ostream &os, const RangeImageBorderExtractor::Parameters &p)
std::ostream & operator<< (std::ostream &os, const Correspondence &c)
 overloaded << operator
template<typename real >
std::ostream & operator<< (std::ostream &os, const BivariatePolynomialT< real > &p)
std::ostream & operator<< (std::ostream &os, const NarfKeypoint::Parameters &p)
std::ostream & operator<< (std::ostream &os, const PointXYZ &p)
std::ostream & operator<< (std::ostream &os, const PointXYZI &p)
std::ostream & operator<< (std::ostream &os, const PointXYZL &p)
std::ostream & operator<< (std::ostream &os, const Label &p)
std::ostream & operator<< (std::ostream &os, const PointXYZRGBA &p)
std::ostream & operator<< (std::ostream &os, const PointXYZRGB &p)
std::ostream & operator<< (std::ostream &os, const PointXYZRGBL &p)
std::ostream & operator<< (std::ostream &os, const PointXYZHSV &p)
std::ostream & operator<< (std::ostream &os, const PointXY &p)
std::ostream & operator<< (std::ostream &os, const InterestPoint &p)
std::ostream & operator<< (std::ostream &os, const Normal &p)
std::ostream & operator<< (std::ostream &os, const Axis &p)
std::ostream & operator<< (std::ostream &os, const _Axis &p)
std::ostream & operator<< (std::ostream &os, const PointNormal &p)
std::ostream & operator<< (std::ostream &os, const PointXYZRGBNormal &p)
std::ostream & operator<< (std::ostream &os, const PointXYZINormal &p)
std::ostream & operator<< (std::ostream &os, const PointWithRange &p)
std::ostream & operator<< (std::ostream &os, const RangeImage &r)
std::ostream & operator<< (std::ostream &os, const PointWithViewpoint &p)
std::ostream & operator<< (std::ostream &os, const MomentInvariants &p)
std::ostream & operator<< (std::ostream &os, const PrincipalRadiiRSD &p)
std::ostream & operator<< (std::ostream &os, const Boundary &p)
std::ostream & operator<< (std::ostream &os, const PrincipalCurvatures &p)
std::ostream & operator<< (std::ostream &os, const PFHSignature125 &p)
std::ostream & operator<< (std::ostream &os, const PFHRGBSignature250 &p)
std::ostream & operator<< (std::ostream &os, const PPFSignature &p)
std::ostream & operator<< (std::ostream &os, const PPFRGBSignature &p)
std::ostream & operator<< (std::ostream &os, const NormalBasedSignature12 &p)
std::ostream & operator<< (std::ostream &os, const ShapeContext &p)
std::ostream & operator<< (std::ostream &os, const SHOT &p)
std::ostream & operator<< (std::ostream &os, const SHOT352 &p)
template<typename PointT >
std::ostream & operator<< (std::ostream &s, const pcl::PointCloud< PointT > &p)
std::ostream & operator<< (std::ostream &os, const SHOT1344 &p)
std::ostream & operator<< (std::ostream &os, const ReferenceFrame &p)
std::ostream & operator<< (std::ostream &os, const FPFHSignature33 &p)
std::ostream & operator<< (std::ostream &os, const VFHSignature308 &p)
std::ostream & operator<< (std::ostream &os, const ESFSignature640 &p)
std::ostream & operator<< (std::ostream &os, const GFPFHSignature16 &p)
std::ostream & operator<< (std::ostream &os, const Narf36 &p)
std::ostream & operator<< (std::ostream &os, const BorderDescription &p)
std::ostream & operator<< (std::ostream &os, const IntensityGradient &p)
template<int N>
std::ostream & operator<< (std::ostream &os, const Histogram< N > &p)
std::ostream & operator<< (std::ostream &os, const PointWithScale &p)
std::ostream & operator<< (std::ostream &os, const PointSurfel &p)
 PCL_DEPRECATED (inline std::ostream &operator<< (std::ostream &os, const SHOT &p),"SHOT POINT IS DEPRECATED, USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD")
template<typename PointInT , typename PointNT , typename PointRFT >
class PCL_DEPRECATED_CLASS (SHOTEstimationOMP,"SHOTEstimationOMP<..., pcl::SHOT, ...> IS DEPRECATED, USE SHOTEstimationOMP<..., pcl::SHOT352, ...> INSTEAD")< PointInT
template<typename PointNT , typename PointRFT >
class PCL_DEPRECATED_CLASS (SHOTEstimationOMP,"SHOTEstimationOMP<pcl::PointXYZRGBA,...,pcl::SHOT,...> IS DEPRECATED, USE SHOTEstimationOMP<pcl::PointXYZRGBA,...,pcl::SHOT352,...> FOR SHAPE AND SHOTColorEstimationOMP<pcl::PointXYZRGBA,...,pcl::SHOT1344,...> FOR SHAPE+COLOR INSTEAD")< pcl
template<typename PointInT , typename PointNT , typename PointRFT >
class PCL_DEPRECATED_CLASS (SHOTEstimation,"SHOTEstimation<..., pcl::SHOT, ...> IS DEPRECATED, USE SHOTEstimation<..., pcl::SHOT352, ...> INSTEAD")< PointInT
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.
template<typename PointNT , typename PointRFT >
class PCL_DEPRECATED_CLASS (SHOTEstimation,"SHOTEstimation<pcl::PointXYZRGBA,...,pcl::SHOT,...> IS DEPRECATED, USE SHOTEstimation<pcl::PointXYZRGBA,...,pcl::SHOT352,...> FOR SHAPE AND SHOTColorEstimation<pcl::PointXYZRGBA,...,pcl::SHOT1344,...> FOR SHAPE+COLOR INSTEAD")< pcl
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.
template<typename PointNT , typename PointRFT >
class PCL_DEPRECATED_CLASS (SHOTEstimation,"SHOTEstimation<pcl::PointXYZRGBA,...,Eigen::MatrixXf,...> IS DEPRECATED, USE SHOTColorEstimation<pcl::PointXYZRGBA,...,Eigen::MatrixXf,...> FOR SHAPE AND SHAPE+COLOR INSTEAD")< pcl
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.
template<typename FloatVectorT >
float PF_Norm (FloatVectorT A, FloatVectorT B, int dim, float P1, float P2)
 Compute the PF norm of the vector between two points.
PCL_EXPORTS bool planeWithPlaneIntersection (const Eigen::Vector4f &plane_a, const Eigen::Vector4f &fplane_b, Eigen::VectorXf &line, double angular_tolerance=0.1)
 Determine the line of intersection of two non-parallel planes using lagrange multipliers in: "Intersection of Two Planes, John Krumm, Microsoft Research, Redmond, WA, USA".
void PointCloudXYZRGBtoXYZHSV (PointCloud< PointXYZRGB > &in, PointCloud< PointXYZHSV > &out)
 Convert a XYZRGB point cloud to a XYZHSV.
void PointCloudXYZRGBtoXYZI (PointCloud< PointXYZRGB > &in, PointCloud< PointXYZI > &out)
 Convert a XYZRGB point cloud to a XYZI.
template<typename Point >
double pointToPlaneDistance (const Point &p, double a, double b, double c, double d)
 Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.
template<typename Point >
double pointToPlaneDistance (const Point &p, const Eigen::Vector4f &plane_coefficients)
 Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.
template<typename Point >
double pointToPlaneDistanceSigned (const Point &p, double a, double b, double c, double d)
 Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.
template<typename Point >
double pointToPlaneDistanceSigned (const Point &p, const Eigen::Vector4f &plane_coefficients)
 Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.
void PointXYZHSVtoXYZRGB (PointXYZHSV &in, PointXYZRGB &out)
 Convert a XYZHSV point type to a XYZRGB.
void PointXYZRGBtoXYZHSV (PointXYZRGB &in, PointXYZHSV &out)
 Convert a XYZRGB point type to a XYZHSV.
void PointXYZRGBtoXYZI (PointXYZRGB &in, PointXYZI &out)
 Convert a XYZRGB point type to a XYZI.
template<typename Point >
void projectPoint (const Point &p, const Eigen::Vector4f &model_coefficients, Point &q)
 Project a point on a planar model given by a set of normalized coefficients.
float rad2deg (float alpha)
 Convert an angle from radians to degrees.
double rad2deg (double alpha)
 Convert an angle from radians to degrees.
template<typename PointT >
void removeNaNFromPointCloud (const pcl::PointCloud< PointT > &cloud_in, std::vector< int > &index)
 Removes points with x, y, or z equal to NaN.
template<typename PointT >
void removeNaNFromPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, std::vector< int > &index)
 Removes points with x, y, or z equal to NaN.
static const std::map
< pcl::SacModel, unsigned int > 
SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs+sizeof(sample_size_pairs)/sizeof(SampleSizeModel))
template<typename Derived >
void saveBinary (const Eigen::MatrixBase< Derived > &matrix, std::ostream &file)
 Write a matrix to an output stream.
template<typename FloatVectorT >
float selectNorm (FloatVectorT A, FloatVectorT B, int dim, NormType norm_type)
 Method that calculates any norm type available, based on the norm_type variable.
void solvePlaneParameters (const Eigen::Matrix3f &covariance_matrix, const Eigen::Vector4f &point, Eigen::Vector4f &plane_parameters, float &curvature)
 Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.
void solvePlaneParameters (const Eigen::Matrix3f &covariance_matrix, float &nx, float &ny, float &nz, float &curvature)
 Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.
double sqrPointToLineDistance (const Eigen::Vector4f &pt, const Eigen::Vector4f &line_pt, const Eigen::Vector4f &line_dir)
 Get the square distance from a point to a line (represented by a point and a direction)
double sqrPointToLineDistance (const Eigen::Vector4f &pt, const Eigen::Vector4f &line_pt, const Eigen::Vector4f &line_dir, const double sqr_length)
 Get the square distance from a point to a line (represented by a point and a direction)
template<typename Scalar >
Scalar sqrt (const Scalar &val)
template<>
double sqrt< double > (const double &val)
template<>
float sqrt< float > (const float &val)
template<>
long double sqrt< long double > (const long double &val)
template<typename PointType1 , typename PointType2 >
float squaredEuclideanDistance (const PointType1 &p1, const PointType2 &p2)
 Calculate the squared euclidean distance between the two given points.
template<typename FloatVectorT >
float Sublinear_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the sublinear norm of the vector between two points.
void throwPCLIOException (const char *function_name, const char *file_name, unsigned line_number, const char *format,...)
template<typename PointT >
void toROSMsg (const pcl::PointCloud< PointT > &cloud, sensor_msgs::PointCloud2 &msg)
 Convert a pcl::PointCloud<T> object to a PointCloud2 binary data blob.
template<typename CloudT >
void toROSMsg (const CloudT &cloud, sensor_msgs::Image &msg)
 Copy the RGB fields of a PointCloud into sensor_msgs::Image format.
void toROSMsg (const sensor_msgs::PointCloud2 &cloud, sensor_msgs::Image &msg)
 Copy the RGB fields of a PointCloud2 msg into sensor_msgs::Image format.
template<typename PointT >
PointT transformPoint (const PointT &point, const Eigen::Affine3f &transform)
 Transform a point with members x,y,z.
template<typename PointT >
void transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Affine3f &transform)
 Apply an affine transform defined by an Eigen Transform.
template<typename PointT >
void transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, pcl::PointCloud< PointT > &cloud_out, const Eigen::Affine3f &transform)
 Apply an affine transform defined by an Eigen Transform.
template<typename PointT >
void transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Matrix4f &transform)
 Apply an affine transform defined by an Eigen Transform.
template<typename PointT >
void transformPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Vector3f &offset, const Eigen::Quaternionf &rotation)
 Apply a rigid transform defined by a 3D offset and a quaternion.
template<typename PointT >
void transformPointCloudWithNormals (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Affine3f &transform)
 Transform a point cloud and rotate its normals using an Eigen transform.
template<typename PointT >
void transformPointCloudWithNormals (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Matrix4f &transform)
 Transform a point cloud and rotate its normals using an Eigen transform.
template<typename PointT >
void transformPointCloudWithNormals (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Vector3f &offset, const Eigen::Quaternionf &rotation)
 Transform a point cloud and rotate its normals using an Eigen transform.

Variables

class< SHOT__pad0__
const unsigned int edgeTable [256]
struct pcl::_PointXYZHSV EIGEN_ALIGN16
const int I_SHIFT_EDGE [3][2]
const int I_SHIFT_EP [12][2]
 The 12 edges of a cell.
const int I_SHIFT_PT [4]
static const int SAC_LMEDS = 1
static const int SAC_MLESAC = 5
static const int SAC_MSAC = 2
static const int SAC_PROSAC = 6
static const int SAC_RANSAC = 0
static const int SAC_RMSAC = 4
static const int SAC_RRANSAC = 3
const int triTable [256][16]

Detailed Description

Software License Agreement (BSD License)

Copyright (c) 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:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Willow Garage, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

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:
cloud_viewer.cpp 6161 2012-07-05 17:37:29Z rusu

Typedef Documentation

typedef Eigen::Map<Eigen::Array3f> pcl::Array3fMap

Definition at line 174 of file point_types.hpp.

typedef const Eigen::Map<const Eigen::Array3f> pcl::Array3fMapConst

Definition at line 175 of file point_types.hpp.

typedef Eigen::Map<Eigen::Array4f, Eigen::Aligned> pcl::Array4fMap

Definition at line 176 of file point_types.hpp.

typedef const Eigen::Map<const Eigen::Array4f, Eigen::Aligned> pcl::Array4fMapConst

Definition at line 177 of file point_types.hpp.

Definition at line 137 of file bivariate_polynomial.h.

Definition at line 136 of file bivariate_polynomial.h.

typedef std::bitset<32> pcl::BorderTraits

Data type to store extended information about a transition from foreground to backgroundSpecification of the fields for BorderDescription::traits.

Definition at line 255 of file point_types.h.

Definition at line 98 of file visualization/src/cloud_viewer.cpp.

Definition at line 97 of file visualization/src/cloud_viewer.cpp.

typedef std::vector< pcl::Correspondence, Eigen::aligned_allocator<pcl::Correspondence> > pcl::Correspondences

Definition at line 92 of file correspondence.h.

typedef boost::shared_ptr<const Correspondences > pcl::CorrespondencesConstPtr

Definition at line 94 of file correspondence.h.

typedef boost::shared_ptr<Correspondences> pcl::CorrespondencesPtr

Definition at line 93 of file correspondence.h.

Definition at line 99 of file visualization/src/cloud_viewer.cpp.

typedef boost::shared_ptr<const std::vector<int> > pcl::IndicesConstPtr

Definition at line 64 of file pcl_base.h.

typedef boost::shared_ptr<std::vector<int> > pcl::IndicesPtr

Definition at line 63 of file pcl_base.h.

Definition at line 100 of file visualization/src/cloud_viewer.cpp.

typedef std::vector<detail::FieldMapping> pcl::MsgFieldMap

Definition at line 69 of file point_cloud.h.

typedef std::vector<PointCorrespondence3D, Eigen::aligned_allocator<PointCorrespondence3D> > pcl::PointCorrespondences3DVector

Definition at line 133 of file correspondence.h.

typedef std::vector<PointCorrespondence6D, Eigen::aligned_allocator<PointCorrespondence6D> > pcl::PointCorrespondences6DVector

Definition at line 149 of file correspondence.h.

Definition at line 129 of file polynomial_calculations.h.

Definition at line 128 of file polynomial_calculations.h.

typedef boost::shared_ptr<pcl::TextureMesh const> pcl::TextureMeshConstPtr

Definition at line 112 of file TextureMesh.h.

typedef boost::shared_ptr<pcl::TextureMesh> pcl::TextureMeshPtr

Definition at line 111 of file TextureMesh.h.

typedef Eigen::Map<Eigen::Vector3f> pcl::Vector3fMap

Definition at line 178 of file point_types.hpp.

typedef const Eigen::Map<const Eigen::Vector3f> pcl::Vector3fMapConst

Definition at line 179 of file point_types.hpp.

typedef Eigen::Map<Eigen::Vector4f, Eigen::Aligned> pcl::Vector4fMap

Definition at line 180 of file point_types.hpp.

typedef const Eigen::Map<const Eigen::Vector4f, Eigen::Aligned> pcl::Vector4fMapConst

Definition at line 181 of file point_types.hpp.

Definition at line 110 of file vector_average.h.

Definition at line 111 of file vector_average.h.

Definition at line 112 of file vector_average.h.


Enumeration Type Documentation

Specification of the fields for BorderDescription::traits.

Enumerator:
BORDER_TRAIT__OBSTACLE_BORDER 
BORDER_TRAIT__SHADOW_BORDER 
BORDER_TRAIT__VEIL_POINT 
BORDER_TRAIT__SHADOW_BORDER_TOP 
BORDER_TRAIT__SHADOW_BORDER_RIGHT 
BORDER_TRAIT__SHADOW_BORDER_BOTTOM 
BORDER_TRAIT__SHADOW_BORDER_LEFT 
BORDER_TRAIT__OBSTACLE_BORDER_TOP 
BORDER_TRAIT__OBSTACLE_BORDER_RIGHT 
BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM 
BORDER_TRAIT__OBSTACLE_BORDER_LEFT 
BORDER_TRAIT__VEIL_POINT_TOP 
BORDER_TRAIT__VEIL_POINT_RIGHT 
BORDER_TRAIT__VEIL_POINT_BOTTOM 
BORDER_TRAIT__VEIL_POINT_LEFT 

Definition at line 265 of file point_types.h.

Enum that defines all the types of norms available.

Note:
Any new norm type should have its own enum value and its own case in the selectNorm () method
Enumerator:
L1 
L2_SQR 
L2 
LINF 
JM 
B 
SUBLINEAR 
CS 
DIV 
PF 
K 
KL 
HIK 

Definition at line 52 of file norms.h.

Enumerator:
SACMODEL_PLANE 
SACMODEL_LINE 
SACMODEL_CIRCLE2D 
SACMODEL_CIRCLE3D 
SACMODEL_SPHERE 
SACMODEL_CYLINDER 
SACMODEL_CONE 
SACMODEL_TORUS 
SACMODEL_PARALLEL_LINE 
SACMODEL_PERPENDICULAR_PLANE 
SACMODEL_PARALLEL_LINES 
SACMODEL_NORMAL_PLANE 
SACMODEL_NORMAL_SPHERE 
SACMODEL_REGISTRATION 
SACMODEL_PARALLEL_PLANE 
SACMODEL_NORMAL_PARALLEL_PLANE 
SACMODEL_STICK 

Definition at line 45 of file model_types.h.


Function Documentation

template<typename PointT >
void pcl::approximatePolygon ( const PlanarPolygon< PointT > &  polygon,
PlanarPolygon< PointT > &  approx_polygon,
float  threshold,
bool  refine = false,
bool  closed = true 
)

see approximatePolygon2D

Author:
Suat Gedikli <gedikli@willowgarage.com>

Definition at line 43 of file polygon_operations.hpp.

template<typename PointT >
void pcl::approximatePolygon2D ( const typename PointCloud< PointT >::VectorType &  polygon,
typename PointCloud< PointT >::VectorType &  approx_polygon,
float  threshold,
bool  refine = false,
bool  closed = true 
)

returns an approximate polygon to given 2D contour. Uses just X and Y values.

Note:
if refinement is not turned on, the resulting polygon will contain points from the original contour with their original z values (if any)
if refinement is turned on, the z values of the refined polygon are not valid and should be set to 0 if point contains z attribute.
Parameters:
[in]polygoninput polygon
[out]approx_polygonapproximate polygon
[in]thresholdmaximum allowed distance of an input vertex to an output edge
[in]closedwhether it is a closed polygon or a polyline
Author:
Suat Gedikli <gedikli@willowgarage.com>

Definition at line 71 of file polygon_operations.hpp.

template<typename FloatVectorT >
float pcl::B_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the B norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 132 of file norms.hpp.

bool pcl::compareLabeledPointClusters ( const pcl::PointIndices &  a,
const pcl::PointIndices &  b 
) [inline]

Sort clusters method (for std::sort).

Definition at line 183 of file extract_labeled_clusters.h.

bool pcl::comparePointClusters ( const pcl::PointIndices &  a,
const pcl::PointIndices &  b 
) [inline]

Sort clusters method (for std::sort).

Definition at line 418 of file extract_clusters.h.

template<typename PointT >
unsigned int pcl::compute3DCentroid ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Vector4f &  centroid 
) [inline]

Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector.

Parameters:
[in]cloudthe input point cloud
[out]centroidthe output centroid
Returns:
number of valid point used to determine the centroid. In case of dense point clouds, this is the same as the size of input cloud.
Note:
if return value is 0, the centroid is not changed, thus not valid.

Definition at line 46 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::compute3DCentroid ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Vector4f &  centroid 
) [inline]

Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector.

Parameters:
[in]cloudthe input point cloud
[in]indicesthe point cloud indices that need to be used
[out]centroidthe output centroid
Returns:
number of valid point used to determine the centroid. In case of dense point clouds, this is the same as the size of input cloud.
Note:
if return value is 0, the centroid is not changed, thus not valid.

Definition at line 86 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::compute3DCentroid ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::Vector4f &  centroid 
) [inline]

Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector.

Parameters:
[in]cloudthe input point cloud
[in]indicesthe point cloud indices that need to be used
[out]centroidthe output centroid
Returns:
number of valid point used to determine the centroid. In case of dense point clouds, this is the same as the size of input cloud.
Note:
if return value is 0, the centroid is not changed, thus not valid.

Definition at line 124 of file centroid.hpp.

template<typename Matrix , typename Vector >
void pcl::computeCorrespondingEigenVector ( const Matrix &  mat,
const typename Matrix::Scalar &  eigenvalue,
Vector &  eigenvector 
) [inline]

determines the corresponding eigenvector to the given eigenvalue of the symmetric positive semi definite input matrix

Parameters:
[in]matsymmetric positive semi definite input matrix
[in]eigenvaluethe eigenvalue which corresponding eigenvector is to be computed
[out]eigenvectorthe corresponding eigenvector for the input eigenvalue

Definition at line 316 of file eigen.h.

template<typename PointT >
unsigned pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const Eigen::Vector4f &  centroid,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the 3x3 covariance matrix of a given set of points. The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeNormalizedCovarianceMatrix.

Parameters:
[in]cloudthe input point cloud
[in]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.
Note:
if return value is 0, the covariance matrix is not changed, thus not valid.

Definition at line 132 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
const Eigen::Vector4f &  centroid,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeNormalizedCovarianceMatrix.

Parameters:
[in]cloudthe input point cloud
[in]indicesthe point cloud indices that need to be used
[in]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 209 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
const Eigen::Vector4f &  centroid,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Note: the covariance matrix is not normalized with the number of points. For a normalized covariance, please use computeNormalizedCovarianceMatrix.

Parameters:
[in]cloudthe input point cloud
[in]indicesthe point cloud indices that need to be used
[in]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 274 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Note:
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency.
Parameters:
[in]cloudthe input point cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 312 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Note:
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency.
Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 366 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Note:
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency.
Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 418 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Matrix3d &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Parameters:
[in]cloudthe input point cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 427 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Matrix3d &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 481 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::Matrix3d &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 534 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized ( const pcl::PointCloud< PointT > &  cloud,
const Eigen::Vector4f &  centroid,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute normalized the 3x3 covariance matrix of a given set of points. The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of points in the point cloud. For small number of points, or if you want explicitely the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function.

Parameters:
[in]cloudthe input point cloud
[in]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 197 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
const Eigen::Vector4f &  centroid,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function.

Parameters:
[in]cloudthe input point cloud
[in]indicesthe point cloud indices that need to be used
[in]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 284 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
const Eigen::Vector4f &  centroid,
Eigen::Matrix3f &  covariance_matrix 
) [inline]

Compute the normalized 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3f. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, use computeCovarianceMatrix and scale the covariance matrix with 1 / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by the computeCovarianceMatrix function.

Parameters:
[in]cloudthe input point cloud
[in]indicesthe point cloud indices that need to be used
[in]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 298 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Matrix3f &  covariance_matrix,
Eigen::Vector4f &  centroid 
) [inline]

Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Note:
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency.
Parameters:
[in]cloudthe input point cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
[out]centroidthe centroid of the set of points in the cloud
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 543 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Matrix3f &  covariance_matrix,
Eigen::Vector4f &  centroid 
) [inline]

Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Note:
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency.
Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]covariance_matrixthe resultant 3x3 covariance matrix
[out]centroidthe centroid of the set of points in the cloud
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 608 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::Matrix3f &  covariance_matrix,
Eigen::Vector4f &  centroid 
) [inline]

Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Note:
This method is theoretically exact. However using float for internal calculations reduces the accuracy but increases the efficiency.
Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 675 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Matrix3d &  covariance_matrix,
Eigen::Vector4d &  centroid 
) [inline]

Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Parameters:
[in]cloudthe input point cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
[out]centroidthe centroid of the set of points in the cloud
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 685 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Matrix3d &  covariance_matrix,
Eigen::Vector4d &  centroid 
) [inline]

Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]covariance_matrixthe resultant 3x3 covariance matrix
[out]centroidthe centroid of the set of points in the cloud
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 750 of file centroid.hpp.

template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::Matrix3d &  covariance_matrix,
Eigen::Vector4d &  centroid 
) [inline]

Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. Normalized means that every entry has been divided by the number of entries in indices. For small number of points, or if you want explicitely the sample-variance, scale the covariance matrix with n / (n-1), where n is the number of points used to calculate the covariance matrix and is returned by this function.

Parameters:
[in]cloudthe input point cloud
[in]indicessubset of points given by their indices
[out]centroidthe centroid of the set of points in the cloud
[out]covariance_matrixthe resultant 3x3 covariance matrix
Returns:
number of valid point used to determine the covariance matrix. In case of dense point clouds, this is the same as the size of input cloud.

Definition at line 817 of file centroid.hpp.

template<typename PointT >
void pcl::computeNDCentroid ( const pcl::PointCloud< PointT > &  cloud,
Eigen::VectorXf &  centroid 
) [inline]

General, all purpose nD centroid estimation for a set of points using their indices.

Parameters:
cloudthe input point cloud
centroidthe output centroid

Definition at line 913 of file centroid.hpp.

template<typename PointT >
void pcl::computeNDCentroid ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::VectorXf &  centroid 
) [inline]

General, all purpose nD centroid estimation for a set of points using their indices.

Parameters:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe output centroid

Definition at line 934 of file centroid.hpp.

template<typename PointT >
void pcl::computeNDCentroid ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::VectorXf &  centroid 
) [inline]

General, all purpose nD centroid estimation for a set of points using their indices.

Parameters:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe output centroid

Definition at line 956 of file centroid.hpp.

bool pcl::computePairFeatures ( const Eigen::Vector4f &  p1,
const Eigen::Vector4f &  n1,
const Eigen::Vector4f &  p2,
const Eigen::Vector4f &  n2,
float &  f1,
float &  f2,
float &  f3,
float &  f4 
)

Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals.

Note:
For explanations about the features, please see the literature mentioned above (the order of the features might be different).
Parameters:
[in]p1the first XYZ point
[in]n1the first surface normal
[in]p2the second XYZ point
[in]n2the second surface normal
[out]f1the first angular feature (angle between the projection of nq_idx and u)
[out]f2the second angular feature (angle between nq_idx and v)
[out]f3the third angular feature (angle between np_idx and |p_idx - q_idx|)
[out]f4the distance feature (p_idx - q_idx)
Note:
For efficiency reasons, we assume that the point data passed to the method is finite.

Definition at line 47 of file pfh.cpp.

template<typename PointT >
void pcl::computePointNormal ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Vector4f &  plane_parameters,
float &  curvature 
) [inline]

Compute the Least-Squares plane fit for a given set of points, and return the estimated plane parameters together with the surface curvature.

Parameters:
cloudthe input point cloud
plane_parametersthe plane parameters as: a, b, c, d (ax + by + cz + d = 0)
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 58 of file normal_3d.h.

template<typename PointT >
void pcl::computePointNormal ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Vector4f &  plane_parameters,
float &  curvature 
) [inline]

Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature.

Parameters:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
plane_parametersthe plane parameters as: a, b, c, d (ax + by + cz + d = 0)
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 89 of file normal_3d.h.

bool pcl::computePPFPairFeature ( const Eigen::Vector4f &  p1,
const Eigen::Vector4f &  n1,
const Eigen::Vector4f &  p2,
const Eigen::Vector4f &  n2,
float &  f1,
float &  f2,
float &  f3,
float &  f4 
)
Parameters:
[in]p1
[in]n1
[in]p2
[in]n2
[out]f1
[out]f2
[out]f3
[out]f4

Definition at line 45 of file ppf.cpp.

bool pcl::computeRGBPairFeatures ( const Eigen::Vector4f &  p1,
const Eigen::Vector4f &  n1,
const Eigen::Vector4i &  colors1,
const Eigen::Vector4f &  p2,
const Eigen::Vector4f &  n2,
const Eigen::Vector4i &  colors2,
float &  f1,
float &  f2,
float &  f3,
float &  f4,
float &  f5,
float &  f6,
float &  f7 
)

Definition at line 45 of file pfhrgb.cpp.

template<typename Matrix , typename Roots >
void pcl::computeRoots ( const Matrix &  m,
Roots &  roots 
) [inline]

computes the roots of the characteristic polynomial of the input matrix m, which are the eigenvalues

Parameters:
[in]minput matrix
[out]rootsroots of the characteristic polynomial of the input matrix m, which are the eigenvalues

Definition at line 142 of file eigen.h.

template<typename Scalar , typename Roots >
void pcl::computeRoots2 ( const Scalar &  b,
const Scalar &  c,
Roots &  roots 
) [inline]

Compute the roots of a quadratic polynom x^2 + b*x + c = 0.

Parameters:
[in]blinear parameter
[in]cconstant parameter
[out]rootssolutions of x^2 + b*x + c = 0

Definition at line 124 of file eigen.h.

template<typename PointInT , typename PointNT , typename PointOutT >
Eigen::MatrixXf pcl::computeRSD ( boost::shared_ptr< const pcl::PointCloud< PointInT > > &  surface,
boost::shared_ptr< const pcl::PointCloud< PointNT > > &  normals,
const std::vector< int > &  indices,
double  max_dist,
int  nr_subdiv,
double  plane_radius,
PointOutT &  radii,
bool  compute_histogram = false 
)

Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.

Parameters:
[in]surfacethe dataset containing the XYZ points
[in]normalsthe dataset containing the surface normals at each point in the dataset
[in]indicesthe neighborhood point indices in the dataset (first point is used as the reference)
[in]max_distthe upper bound for the considered distance interval
[in]nr_subdivthe number of subdivisions for the considered distance interval
[in]plane_radiusmaximum radius, above which everything can be considered planar
[in]radiithe output point of a type that should have r_min and r_max fields
[in]compute_histogramif not false, the full neighborhood histogram is provided, usable as a point signature
Note:
: orientation is neglected!
: we neglect points that are outside the specified interval!

Definition at line 46 of file rsd.hpp.

template<typename PointNT , typename PointOutT >
Eigen::MatrixXf pcl::computeRSD ( boost::shared_ptr< const pcl::PointCloud< PointNT > > &  normals,
const std::vector< int > &  indices,
const std::vector< float > &  sqr_dists,
double  max_dist,
int  nr_subdiv,
double  plane_radius,
PointOutT &  radii,
bool  compute_histogram = false 
)

Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.

Parameters:
[in]normalsthe dataset containing the surface normals at each point in the dataset
[in]indicesthe neighborhood point indices in the dataset (first point is used as the reference)
[in]sqr_diststhe squared distances from the first to all points in the neighborhood
[in]max_distthe upper bound for the considered distance interval
[in]nr_subdivthe number of subdivisions for the considered distance interval
[in]plane_radiusmaximum radius, above which everything can be considered planar
[in]radiithe output point of a type that should have r_min and r_max fields
[in]compute_histogramif not false, the full neighborhood histogram is provided, usable as a point signature
Note:
: orientation is neglected!
: we neglect points that are outside the specified interval!

Definition at line 147 of file rsd.hpp.

template<typename PointT >
pcl::PointCloud<pcl::VFHSignature308>::Ptr pcl::computeVFH ( typename PointCloud< PointT >::ConstPtr  cloud,
double  radius 
)

Helper function to extract the VFH feature describing the given point cloud.

Parameters:
pointspoint cloud for feature extraction
radiussearch radius for normal estimation
Returns:
point cloud containing the extracted feature

Definition at line 57 of file vfh_nn_classifier.h.

template<typename PointIn1T , typename PointIn2T , typename PointOutT >
void pcl::concatenateFields ( const pcl::PointCloud< PointIn1T > &  cloud1_in,
const pcl::PointCloud< PointIn2T > &  cloud2_in,
pcl::PointCloud< PointOutT > &  cloud_out 
)

Concatenate two datasets representing different fields.

Note:
If the input datasets have overlapping fields (i.e., both contain the same fields), then the data in the second cloud (cloud2_in) will overwrite the data in the first (cloud1_in).
Parameters:
[in]cloud1_inthe first input dataset
[in]cloud2_inthe second input dataset (overwrites the fields of the first dataset for those that are shared)
[out]cloud_outthe resultant output dataset created by the concatenation of all the fields in the input datasets

Definition at line 364 of file common/include/pcl/common/impl/io.hpp.

bool pcl::concatenateFields ( const sensor_msgs::PointCloud2 &  cloud1_in,
const sensor_msgs::PointCloud2 &  cloud2_in,
sensor_msgs::PointCloud2 &  cloud_out 
)

Concatenate two datasets representing different fields.

Note:
If the input datasets have overlapping fields (i.e., both contain the same fields), then the data in the second cloud (cloud2_in) will overwrite the data in the first (cloud1_in).
Parameters:
[in]cloud1_inthe first input dataset
[in]cloud2_inthe second input dataset (overwrites the fields of the first dataset for those that are shared)
[out]cloud_outthe output dataset created by concatenating all the fields in the input datasets

Definition at line 69 of file common/src/io.cpp.

bool pcl::concatenatePointCloud ( const sensor_msgs::PointCloud2 &  cloud1,
const sensor_msgs::PointCloud2 &  cloud2,
sensor_msgs::PointCloud2 &  cloud_out 
)

Concatenate two sensor_msgs::PointCloud2.

Parameters:
[in]cloud1the first input point cloud dataset
[in]cloud2the second input point cloud dataset
[out]cloud_outthe resultant output point cloud dataset
Returns:
true if successful, false if failed (e.g., name/number of fields differs)

Definition at line 218 of file common/src/io.cpp.

template<typename PointInT , typename PointOutT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointInT > &  cloud_in,
pcl::PointCloud< PointOutT > &  cloud_out 
)

Copy all the fields from a given point cloud into a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[out]cloud_outthe resultant output point cloud dataset

Definition at line 108 of file common/include/pcl/common/impl/io.hpp.

void pcl::copyPointCloud ( const sensor_msgs::PointCloud2 &  cloud_in,
const std::vector< int > &  indices,
sensor_msgs::PointCloud2 &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 343 of file common/src/io.cpp.

void pcl::copyPointCloud ( const sensor_msgs::PointCloud2 &  cloud_in,
sensor_msgs::PointCloud2 &  cloud_out 
)

Copy fields and point cloud data from cloud_in to cloud_out.

Parameters:
[in]cloud_inthe input point cloud dataset
[out]cloud_outthe resultant output point cloud dataset

Definition at line 374 of file common/src/io.cpp.

template<typename PointT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const std::vector< int > &  indices,
pcl::PointCloud< PointT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 130 of file common/include/pcl/common/impl/io.hpp.

template<typename PointT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const std::vector< int, Eigen::aligned_allocator< int > > &  indices,
pcl::PointCloud< PointT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 155 of file common/include/pcl/common/impl/io.hpp.

template<typename PointInT , typename PointOutT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointInT > &  cloud_in,
const std::vector< int > &  indices,
pcl::PointCloud< PointOutT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 181 of file common/include/pcl/common/impl/io.hpp.

template<typename PointInT , typename PointOutT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointInT > &  cloud_in,
const std::vector< int, Eigen::aligned_allocator< int > > &  indices,
pcl::PointCloud< PointOutT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 208 of file common/include/pcl/common/impl/io.hpp.

template<typename PointT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const PointIndices &  indices,
pcl::PointCloud< PointT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe PointIndices structure representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset
template<typename PointInT , typename PointOutT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointInT > &  cloud_in,
const PointIndices &  indices,
pcl::PointCloud< PointOutT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe PointIndices structure representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset
template<typename PointT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const std::vector< pcl::PointIndices > &  indices,
pcl::PointCloud< PointT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 288 of file common/include/pcl/common/impl/io.hpp.

template<typename PointInT , typename PointOutT >
void pcl::copyPointCloud ( const pcl::PointCloud< PointInT > &  cloud_in,
const std::vector< pcl::PointIndices > &  indices,
pcl::PointCloud< PointOutT > &  cloud_out 
)

Extract the indices of a given point cloud as a new point cloud.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]indicesthe vector of indices representing the points to be copied from cloud_in
[out]cloud_outthe resultant output point cloud dataset

Definition at line 325 of file common/include/pcl/common/impl/io.hpp.

template<typename Type >
void pcl::copyStringValue ( const std::string &  st,
sensor_msgs::PointCloud2 &  cloud,
unsigned int  point_index,
unsigned int  field_idx,
unsigned int  fields_count 
) [inline]

Copy one single value of type T (uchar, char, uint, int, float, double, ...) from a string.

Uses aoti/atof to do the conversion. Checks if the st is "nan" and converts it accordingly.

Parameters:
[in]stthe string containing the value to convert and copy
[out]cloudthe cloud to copy it to
[in]point_indexthe index of the point
[in]field_idxthe index of the dimension/field
[in]fields_countthe current fields count

Definition at line 317 of file io/include/pcl/io/file_io.h.

template<>
void pcl::copyStringValue< int8_t > ( const std::string &  st,
sensor_msgs::PointCloud2 &  cloud,
unsigned int  point_index,
unsigned int  field_idx,
unsigned int  fields_count 
) [inline]

Definition at line 339 of file io/include/pcl/io/file_io.h.

template<>
void pcl::copyStringValue< uint8_t > ( const std::string &  st,
sensor_msgs::PointCloud2 &  cloud,
unsigned int  point_index,
unsigned int  field_idx,
unsigned int  fields_count 
) [inline]

Definition at line 363 of file io/include/pcl/io/file_io.h.

virtual void pcl::copyToFloatArray ( const SHOT &  p,
float *  out 
) const [virtual]

Definition at line 455 of file point_representation.h.

template<typename Type >
void pcl::copyValueString ( const sensor_msgs::PointCloud2 &  cloud,
const unsigned int  point_index,
const int  point_size,
const unsigned int  field_idx,
const unsigned int  fields_count,
std::ostream &  stream 
) [inline]

insers a value of type Type (uchar, char, uint, int, float, double, ...) into a stringstream.

If the value is NaN, it inserst "nan".

Parameters:
[in]cloudthe cloud to copy from
[in]point_indexthe index of the point
[in]point_sizethe size of the point in the cloud
[in]field_idxthe index of the dimension/field
[in]fields_countthe current fields count
[out]streamthe ostringstream to copy into

Definition at line 234 of file io/include/pcl/io/file_io.h.

template<>
void pcl::copyValueString< int8_t > ( const sensor_msgs::PointCloud2 &  cloud,
const unsigned int  point_index,
const int  point_size,
const unsigned int  field_idx,
const unsigned int  fields_count,
std::ostream &  stream 
) [inline]

Definition at line 249 of file io/include/pcl/io/file_io.h.

template<>
void pcl::copyValueString< uint8_t > ( const sensor_msgs::PointCloud2 &  cloud,
const unsigned int  point_index,
const int  point_size,
const unsigned int  field_idx,
const unsigned int  fields_count,
std::ostream &  stream 
) [inline]

Definition at line 265 of file io/include/pcl/io/file_io.h.

template<typename PointT >
void pcl::createMapping ( const std::vector< sensor_msgs::PointField > &  msg_fields,
MsgFieldMap &  field_map 
)
Todo:
One could construct a pathological case where the struct has a field where the serialized data has padding

Definition at line 119 of file conversions.h.

template<typename FloatVectorT >
float pcl::CS_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the CS norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 161 of file norms.hpp.

float pcl::deg2rad ( float  alpha) [inline]

Convert an angle from degrees to radians.

Parameters:
alphathe input angle (in degrees)

Definition at line 61 of file angles.hpp.

double pcl::deg2rad ( double  alpha) [inline]

Convert an angle from degrees to radians.

Parameters:
alphathe input angle (in degrees)

Definition at line 73 of file angles.hpp.

template<typename PointT >
void pcl::demeanPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const Eigen::Vector4f &  centroid,
pcl::PointCloud< PointT > &  cloud_out 
)

Subtract a centroid from a point cloud and return the de-meaned representation.

Parameters:
cloud_inthe input point cloud
centroidthe centroid of the point cloud
cloud_outthe resultant output point cloud

Definition at line 826 of file centroid.hpp.

template<typename PointT >
void pcl::demeanPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const std::vector< int > &  indices,
const Eigen::Vector4f &  centroid,
pcl::PointCloud< PointT > &  cloud_out 
)

Subtract a centroid from a point cloud and return the de-meaned representation.

Parameters:
cloud_inthe input point cloud
indicesthe set of point indices to use from the input point cloud
centroidthe centroid of the point cloud
cloud_outthe resultant output point cloud

Definition at line 839 of file centroid.hpp.

template<typename PointT >
void pcl::demeanPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const Eigen::Vector4f &  centroid,
Eigen::MatrixXf &  cloud_out 
)

Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix.

Parameters:
cloud_inthe input point cloud
centroidthe centroid of the point cloud
cloud_outthe resultant output XYZ0 dimensions of cloud_in as an Eigen matrix (4 rows, N pts columns)

Definition at line 866 of file centroid.hpp.

template<typename PointT >
void pcl::demeanPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const std::vector< int > &  indices,
const Eigen::Vector4f &  centroid,
Eigen::MatrixXf &  cloud_out 
)

Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix.

Parameters:
cloud_inthe input point cloud
indicesthe set of point indices to use from the input point cloud
centroidthe centroid of the point cloud
cloud_outthe resultant output XYZ0 dimensions of cloud_in as an Eigen matrix (4 rows, N pts columns)

Definition at line 884 of file centroid.hpp.

template<typename PointT >
void pcl::demeanPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const pcl::PointIndices &  indices,
const Eigen::Vector4f &  centroid,
Eigen::MatrixXf &  cloud_out 
)

Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix.

Parameters:
cloud_inthe input point cloud
indicesthe set of point indices to use from the input point cloud
centroidthe centroid of the point cloud
cloud_outthe resultant output XYZ0 dimensions of cloud_in as an Eigen matrix (4 rows, N pts columns)

Definition at line 903 of file centroid.hpp.

template<typename Matrix >
Matrix::Scalar pcl::determinant3x3Matrix ( const Matrix &  matrix) [inline]

Definition at line 700 of file eigen.h.

template<typename FloatVectorT >
float pcl::Div_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the div norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 175 of file norms.hpp.

template<typename Matrix , typename Vector >
void pcl::eigen22 ( const Matrix &  mat,
typename Matrix::Scalar &  eigenvalue,
Vector &  eigenvector 
) [inline]

determine the smallest eigenvalue and its corresponding eigenvector

Parameters:
[in]matinput matrix that needs to be symmetric and positive semi definite
[out]eigenvaluethe smallest eigenvalue of the input matrix
[out]eigenvectorthe corresponding eigenvector to the smallest eigenvalue of the input matrix

Definition at line 213 of file eigen.h.

template<typename Matrix , typename Vector >
void pcl::eigen22 ( const Matrix &  mat,
Matrix &  eigenvectors,
Vector &  eigenvalues 
) [inline]

determine the smallest eigenvalue and its corresponding eigenvector

Parameters:
[in]matinput matrix that needs to be symmetric and positive semi definite
[out]eigenvectorsthe corresponding eigenvector to the smallest eigenvalue of the input matrix
[out]eigenvaluesthe smallest eigenvalue of the input matrix

Definition at line 257 of file eigen.h.

template<typename Matrix , typename Vector >
void pcl::eigen33 ( const Matrix &  mat,
typename Matrix::Scalar &  eigenvalue,
Vector &  eigenvector 
) [inline]

determines the eigenvector and eigenvalue of the smallest eigenvalue of the symmetric positive semi definite input matrix

Parameters:
[in]matsymmetric positive semi definite input matrix
[out]eigenvaluesmallest eigenvalue of the input matrix
[out]eigenvectorthe corresponding eigenvector for the input eigenvalue
Note:
if the smallest eigenvalue is not unique, this function may return any eigenvector that is consistent to the eigenvalue.

Definition at line 354 of file eigen.h.

template<typename Matrix , typename Vector >
void pcl::eigen33 ( const Matrix &  mat,
Vector &  evals 
) [inline]

determines the eigenvalues of the symmetric positive semi definite input matrix

Parameters:
[in]matsymmetric positive semi definite input matrix
[out]evalsresulting eigenvalues in ascending order

Definition at line 395 of file eigen.h.

template<typename Matrix , typename Vector >
void pcl::eigen33 ( const Matrix &  mat,
Matrix &  evecs,
Vector &  evals 
) [inline]

determines the eigenvalues and corresponding eigenvectors of the symmetric positive semi definite input matrix

Parameters:
[in]matsymmetric positive semi definite input matrix
[out]evecsresulting eigenvalues in ascending order
[out]evalscorresponding eigenvectors in correct order according to eigenvalues

Definition at line 414 of file eigen.h.

template<typename PointType1 , typename PointType2 >
float pcl::euclideanDistance ( const PointType1 &  p1,
const PointType2 &  p2 
) [inline]

Calculate the euclidean distance between the two given points.

Parameters:
[in]p1the first point
[in]p2the second point

Definition at line 184 of file common/include/pcl/common/distances.h.

template<typename PointT >
void pcl::extractEuclideanClusters ( const PointCloud< PointT > &  cloud,
const boost::shared_ptr< search::Search< PointT > > &  tree,
float  tolerance,
std::vector< PointIndices > &  clusters,
unsigned int  min_pts_per_cluster = 1,
unsigned int  max_pts_per_cluster = (std::numeric_limits<int>::max) () 
)

Decompose a region of space into clusters based on the Euclidean distance between points.

Parameters:
cloudthe point cloud message
treethe spatial locator (e.g., kd-tree) used for nearest neighbors searching
Note:
the tree has to be created as a spatial locator on cloud
Parameters:
tolerancethe spatial cluster tolerance as a measure in L2 Euclidean space
clustersthe resultant clusters containing point indices (as a vector of PointIndices)
min_pts_per_clusterminimum number of points that a cluster may contain (default: 1)
max_pts_per_clustermaximum number of points that a cluster may contain (default: max int)

Definition at line 45 of file extract_clusters.hpp.

template<typename PointT >
void pcl::extractEuclideanClusters ( const PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
const boost::shared_ptr< search::Search< PointT > > &  tree,
float  tolerance,
std::vector< PointIndices > &  clusters,
unsigned int  min_pts_per_cluster = 1,
unsigned int  max_pts_per_cluster = (std::numeric_limits<int>::max) () 
)

Decompose a region of space into clusters based on the Euclidean distance between points.

Parameters:
cloudthe point cloud message
indicesa list of point indices to use from cloud
treethe spatial locator (e.g., kd-tree) used for nearest neighbors searching
Note:
the tree has to be created as a spatial locator on cloud and indices
Parameters:
tolerancethe spatial cluster tolerance as a measure in L2 Euclidean space
clustersthe resultant clusters containing point indices (as a vector of PointIndices)
min_pts_per_clusterminimum number of points that a cluster may contain (default: 1)
max_pts_per_clustermaximum number of points that a cluster may contain (default: max int)
Todo:
: fix the return value, make sure the exit is not needed anymore

Definition at line 116 of file extract_clusters.hpp.

template<typename PointT , typename Normal >
void pcl::extractEuclideanClusters ( const PointCloud< PointT > &  cloud,
const PointCloud< Normal > &  normals,
float  tolerance,
const boost::shared_ptr< KdTree< PointT > > &  tree,
std::vector< PointIndices > &  clusters,
double  eps_angle,
unsigned int  min_pts_per_cluster = 1,
unsigned int  max_pts_per_cluster = (std::numeric_limits<int>::max) () 
)

Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation.

Parameters:
cloudthe point cloud message
normalsthe point cloud message containing normal information
treethe spatial locator (e.g., kd-tree) used for nearest neighbors searching
Note:
the tree has to be created as a spatial locator on cloud
Parameters:
tolerancethe spatial cluster tolerance as a measure in the L2 Euclidean space
clustersthe resultant clusters containing point indices (as a vector of PointIndices)
eps_anglethe maximum allowed difference between normals in radians for cluster/region growing
min_pts_per_clusterminimum number of points that a cluster may contain (default: 1)
max_pts_per_clustermaximum number of points that a cluster may contain (default: max int)

Definition at line 99 of file extract_clusters.h.

template<typename PointT , typename Normal >
void pcl::extractEuclideanClusters ( const PointCloud< PointT > &  cloud,
const PointCloud< Normal > &  normals,
const std::vector< int > &  indices,
const boost::shared_ptr< KdTree< PointT > > &  tree,
float  tolerance,
std::vector< PointIndices > &  clusters,
double  eps_angle,
unsigned int  min_pts_per_cluster = 1,
unsigned int  max_pts_per_cluster = (std::numeric_limits<int>::max) () 
)

Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation.

Parameters:
cloudthe point cloud message
normalsthe point cloud message containing normal information
indicesa list of point indices to use from cloud
treethe spatial locator (e.g., kd-tree) used for nearest neighbors searching
Note:
the tree has to be created as a spatial locator on cloud
Parameters:
tolerancethe spatial cluster tolerance as a measure in the L2 Euclidean space
clustersthe resultant clusters containing point indices (as PointIndices)
eps_anglethe maximum allowed difference between normals in degrees for cluster/region growing
min_pts_per_clusterminimum number of points that a cluster may contain (default: 1)
max_pts_per_clustermaximum number of points that a cluster may contain (default: max int)

Definition at line 198 of file extract_clusters.h.

template<typename PointT >
void pcl::extractLabeledEuclideanClusters ( const PointCloud< PointT > &  cloud,
const boost::shared_ptr< search::Search< PointT > > &  tree,
float  tolerance,
std::vector< std::vector< PointIndices > > &  labeled_clusters,
unsigned int  min_pts_per_cluster = 1,
unsigned int  max_pts_per_cluster = (std::numeric_limits<int>::max) (),
unsigned int  max_label = (std::numeric_limits<int>::max) 
)

Decompose a region of space into clusters based on the Euclidean distance between points.

Parameters:
[in]cloudthe point cloud message
[in]treethe spatial locator (e.g., kd-tree) used for nearest neighbors searching
Note:
the tree has to be created as a spatial locator on cloud
Parameters:
[in]tolerancethe spatial cluster tolerance as a measure in L2 Euclidean space
[out]labeled_clustersthe resultant clusters containing point indices (as a vector of PointIndices)
[in]min_pts_per_clusterminimum number of points that a cluster may contain (default: 1)
[in]max_pts_per_clustermaximum number of points that a cluster may contain (default: max int)
[in]max_label

Definition at line 44 of file extract_labeled_clusters.hpp.

template<typename PointT , typename Scalar >
void pcl::flipNormalTowardsViewpoint ( const PointT point,
float  vp_x,
float  vp_y,
float  vp_z,
Eigen::Matrix< Scalar, 4, 1 > &  normal 
) [inline]

Flip (in place) the estimated normal of a point towards a given viewpoint.

Parameters:
pointa given point
vp_xthe X coordinate of the viewpoint
vp_ythe X coordinate of the viewpoint
vp_zthe X coordinate of the viewpoint
normalthe plane normal to be flipped

Definition at line 115 of file normal_3d.h.

template<typename PointT , typename Scalar >
void pcl::flipNormalTowardsViewpoint ( const PointT point,
float  vp_x,
float  vp_y,
float  vp_z,
Eigen::Matrix< Scalar, 3, 1 > &  normal 
) [inline]

Flip (in place) the estimated normal of a point towards a given viewpoint.

Parameters:
pointa given point
vp_xthe X coordinate of the viewpoint
vp_ythe X coordinate of the viewpoint
vp_zthe X coordinate of the viewpoint
normalthe plane normal to be flipped

Definition at line 142 of file normal_3d.h.

template<typename PointT >
void pcl::flipNormalTowardsViewpoint ( const PointT point,
float  vp_x,
float  vp_y,
float  vp_z,
float &  nx,
float &  ny,
float &  nz 
) [inline]

Flip (in place) the estimated normal of a point towards a given viewpoint.

Parameters:
pointa given point
vp_xthe X coordinate of the viewpoint
vp_ythe X coordinate of the viewpoint
vp_zthe X coordinate of the viewpoint
nxthe resultant X component of the plane normal
nythe resultant Y component of the plane normal
nzthe resultant Z component of the plane normal

Definition at line 163 of file normal_3d.h.

template<typename Sequence , typename F >
void pcl::for_each_type ( f) [inline]

Definition at line 91 of file for_each_type.h.

template<typename PointT >
void pcl::fromROSMsg ( const sensor_msgs::PointCloud2 &  msg,
pcl::PointCloud< PointT > &  cloud,
const MsgFieldMap &  field_map 
)

Convert a PointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.

Parameters:
[in]msgthe PointCloud2 binary blob
[out]cloudthe resultant pcl::PointCloud<T>
[in]field_mapa MsgFieldMap object
Note:
Use fromROSMsg (PointCloud2, PointCloud<T>) directly or create you own MsgFieldMap using:
 MsgFieldMap field_map;
 createMapping<PointT> (msg.fields, field_map);

Definition at line 163 of file conversions.h.

template<typename PointT >
void pcl::fromROSMsg ( const sensor_msgs::PointCloud2 &  msg,
pcl::PointCloud< PointT > &  cloud 
)

Convert a PointCloud2 binary data blob into a pcl::PointCloud<T> object.

Parameters:
[in]msgthe PointCloud2 binary blob
[out]cloudthe resultant pcl::PointCloud<T>

Definition at line 221 of file conversions.h.

Eigen::MatrixXi pcl::getAllNeighborCellIndices ( ) [inline]

Get the relative cell indices of all the 26 neighbors.

Note:
Useful in combination with getNeighborCentroidIndices() from VoxelGrid

Definition at line 123 of file voxel_grid.h.

void pcl::getAllPcdFilesInDirectory ( const std::string &  directory,
std::vector< std::string > &  file_names 
) [inline]

Find all *.pcd files in the directory and return them sorted.

Parameters:
directorythe directory to be searched
file_namesthe resulting (sorted) list of .pcd files

Definition at line 40 of file file_io.hpp.

double pcl::getAngle3D ( const Eigen::Vector4f &  v1,
const Eigen::Vector4f &  v2 
) [inline]

Compute the smallest angle between two vectors in the [ 0, PI ) interval in 3D.

Parameters:
v1the first 3D vector (represented as a Eigen::Vector4f)
v2the second 3D vector (represented as a Eigen::Vector4f)
Returns:
the angle between v1 and v2

Definition at line 45 of file common.hpp.

template<typename PointT >
void pcl::getApproximateIndices ( const typename pcl::PointCloud< PointT >::Ptr &  cloud_in,
const typename pcl::PointCloud< PointT >::Ptr &  cloud_ref,
std::vector< int > &  indices 
)

Get a set of approximate indices for a given point cloud into a reference point cloud. The coordinates of the two point clouds can differ. The method uses an internal KdTree for finding the closest neighbors from cloud_in in cloud_ref.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]cloud_refthe reference point cloud dataset
[out]indicesthe resultant set of nearest neighbor indices of cloud_in in cloud_ref

Definition at line 68 of file kdtree/include/pcl/kdtree/impl/io.hpp.

template<typename Point1T , typename Point2T >
void pcl::getApproximateIndices ( const typename pcl::PointCloud< Point1T >::Ptr &  cloud_in,
const typename pcl::PointCloud< Point2T >::Ptr &  cloud_ref,
std::vector< int > &  indices 
)

Get a set of approximate indices for a given point cloud into a reference point cloud. The coordinates of the two point clouds can differ. The method uses an internal KdTree for finding the closest neighbors from cloud_in in cloud_ref.

Parameters:
[in]cloud_inthe input point cloud dataset
[in]cloud_refthe reference point cloud dataset
[out]indicesthe resultant set of nearest neighbor indices of cloud_in in cloud_ref

Definition at line 48 of file kdtree/include/pcl/kdtree/impl/io.hpp.

template<typename PointT >
double pcl::getCircumcircleRadius ( const PointT pa,
const PointT pb,
const PointT pc 
) [inline]

Compute the radius of a circumscribed circle for a triangle formed of three points pa, pb, and pc.

Parameters:
pathe first point
pbthe second point
pcthe third point
Returns:
the radius of the circumscribed circle

Definition at line 353 of file common.hpp.

bool pcl::getEigenAsPointCloud ( Eigen::MatrixXf &  in,
sensor_msgs::PointCloud2 &  out 
)

Copy the XYZ dimensions from an Eigen MatrixXf into a sensor_msgs::PointCloud2 message.

Parameters:
[in]inthe Eigen MatrixXf format containing XYZ0 / point
[out]outthe resultant point cloud message
Note:
the method assumes that the PointCloud2 message already has the fields set up properly !

Definition at line 296 of file common/src/io.cpp.

void pcl::getEulerAngles ( const Eigen::Affine3f &  t,
float &  roll,
float &  pitch,
float &  yaw 
) [inline]

Extract the Euler angles (XYZ-convention) from the given transformation.

Parameters:
[in]tthe input transformation matrix
[in]rollthe resulting roll angle
[in]pitchthe resulting pitch angle
[in]yawthe resulting yaw angle

Definition at line 96 of file eigen.hpp.

template<int N>
void pcl::getFeaturePointCloud ( const std::vector< Eigen::MatrixXf, Eigen::aligned_allocator< Eigen::MatrixXf > > &  histograms2D,
PointCloud< Histogram< N > > &  histogramsPC 
)

Transform a list of 2D matrices into a point cloud containing the values in a vector (Histogram<N>). Can be used to transform the 2D histograms obtained in RSDEstimation into a point cloud.

Note:
The template paramter N should be (greater or) equal to the product of the number of rows and columns.
Parameters:
[in]histograms2Dthe list of neighborhood 2D histograms
[out]histogramsPCthe dataset containing the linearized matrices

Definition at line 53 of file rsd.h.

int pcl::getFieldIndex ( const sensor_msgs::PointCloud2 &  cloud,
const std::string &  field_name 
) [inline]

Get the index of a specified field (i.e., dimension/channel)

Parameters:
[in]cloudthe the point cloud message
[in]field_namethe string defining the field name

Definition at line 58 of file common/include/pcl/common/io.h.

template<typename PointT >
int pcl::getFieldIndex ( const pcl::PointCloud< PointT > &  cloud,
const std::string &  field_name,
std::vector< sensor_msgs::PointField > &  fields 
) [inline]

Get the index of a specified field (i.e., dimension/channel)

Parameters:
[in]cloudthe the point cloud message
[in]field_namethe string defining the field name
[out]fieldsa vector to the original PointField vector that the raw PointCloud message contains

Definition at line 47 of file common/include/pcl/common/impl/io.hpp.

template<typename PointT >
int pcl::getFieldIndex ( const std::string &  field_name,
std::vector< sensor_msgs::PointField > &  fields 
) [inline]

Get the index of a specified field (i.e., dimension/channel)

Parameters:
[in]field_namethe string defining the field name
[out]fieldsa vector to the original PointField vector that the raw PointCloud message contains

Definition at line 62 of file common/include/pcl/common/impl/io.hpp.

template<typename PointT >
void pcl::getFields ( const pcl::PointCloud< PointT > &  cloud,
std::vector< sensor_msgs::PointField > &  fields 
) [inline]

Get the list of available fields (i.e., dimension/channel)

Parameters:
[in]cloudthe point cloud message
[out]fieldsa vector to the original PointField vector that the raw PointCloud message contains

Definition at line 76 of file common/include/pcl/common/impl/io.hpp.

template<typename PointT >
void pcl::getFields ( std::vector< sensor_msgs::PointField > &  fields) [inline]

Get the list of available fields (i.e., dimension/channel)

Parameters:
[out]fieldsa vector to the original PointField vector that the raw PointCloud message contains

Definition at line 85 of file common/include/pcl/common/impl/io.hpp.

int pcl::getFieldSize ( const int  datatype) [inline]

Obtains the size of a specific field data type in bytes.

Parameters:
[in]datatypethe field data type (see PointField.h)

Definition at line 127 of file common/include/pcl/common/io.h.

template<typename PointT >
std::string pcl::getFieldsList ( const pcl::PointCloud< PointT > &  cloud) [inline]

Get the list of all fields available in a given cloud.

Parameters:
[in]cloudthe the point cloud message

Definition at line 94 of file common/include/pcl/common/impl/io.hpp.

std::string pcl::getFieldsList ( const sensor_msgs::PointCloud2 &  cloud) [inline]

Get the available point cloud fields as a space separated string.

Parameters:
[in]clouda pointer to the PointCloud message

Definition at line 113 of file common/include/pcl/common/io.h.

PCL_EXPORTS void pcl::getFieldsSizes ( const std::vector< sensor_msgs::PointField > &  fields,
std::vector< int > &  field_sizes 
)

Obtain a vector with the sizes of all valid fields (e.g., not "_")

Parameters:
[in]fieldsthe input vector containing the fields
[out]field_sizesthe resultant field sizes in bytes

Definition at line 45 of file common/src/io.cpp.

int pcl::getFieldType ( const int  size,
char  type 
) [inline]

Obtains the type of the PointField from a specific size and type.

Parameters:
[in]sizethe size in bytes of the data field
[in]typea char describing the type of the field ('F' = float, 'I' = signed, 'U' = unsigned)

Definition at line 166 of file common/include/pcl/common/io.h.

char pcl::getFieldType ( const int  type) [inline]

Obtains the type of the PointField from a specific PointField as a char.

Parameters:
[in]typethe PointField field type

Definition at line 204 of file common/include/pcl/common/io.h.

std::string pcl::getFileExtension ( const std::string &  input) [inline]

Get the file extension from the given string (the remaining string after the last '.')

Parameters:
inputthe input filename
Returns:
input 's file extension

Definition at line 75 of file file_io.hpp.

std::string pcl::getFilenameWithoutExtension ( const std::string &  input) [inline]

Remove the extension from the given string and return only the filename (everything before the last '.')

Parameters:
inputthe input filename (with the file extension)
Returns:
the resulting filename, stripped of its extension

Definition at line 69 of file file_io.hpp.

std::string pcl::getFilenameWithoutPath ( const std::string &  input) [inline]

Remove the path from the given string and return only the filename (the remaining string after the last '/')

Parameters:
inputthe input filename (with full path)
Returns:
the resulting filename, stripped of the path

Definition at line 63 of file file_io.hpp.

Eigen::MatrixXi pcl::getHalfNeighborCellIndices ( ) [inline]

Get the relative cell indices of the "upper half" 13 neighbors.

Note:
Useful in combination with getNeighborCentroidIndices() from VoxelGrid

Definition at line 86 of file voxel_grid.h.

template<typename PointT >
void pcl::getMaxDistance ( const pcl::PointCloud< PointT > &  cloud,
const Eigen::Vector4f &  pivot_pt,
Eigen::Vector4f &  max_pt 
) [inline]

Get the point at maximum distance from a given point and a given pointcloud.

Parameters:
cloudthe point cloud data message
pivot_ptthe point from where to compute the distance
max_ptthe point in cloud that is the farthest point away from pivot_pt

Definition at line 115 of file common.hpp.

template<typename PointT >
void pcl::getMaxDistance ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
const Eigen::Vector4f &  pivot_pt,
Eigen::Vector4f &  max_pt 
) [inline]

Get the point at maximum distance from a given point and a given pointcloud.

Parameters:
cloudthe point cloud data message
pivot_ptthe point from where to compute the distance
indicesthe vector of point indices to use from cloud
max_ptthe point in cloud that is the farthest point away from pivot_pt

Definition at line 158 of file common.hpp.

template<typename PointT >
double pcl::getMaxSegment ( const pcl::PointCloud< PointT > &  cloud,
PointT pmin,
PointT pmax 
) [inline]

Obtain the maximum segment in a given set of points, and return the minimum and maximum points.

Parameters:
[in]cloudthe point cloud dataset
[out]pminthe coordinates of the "minimum" point in cloud (one end of the segment)
[out]pmaxthe coordinates of the "maximum" point in cloud (the other end of the segment)
Returns:
the length of segment length

Definition at line 100 of file common/include/pcl/common/distances.h.

template<typename PointT >
double pcl::getMaxSegment ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
PointT pmin,
PointT pmax 
) [inline]

Obtain the maximum segment in a given set of points, and return the minimum and maximum points.

Parameters:
[in]cloudthe point cloud dataset
[in]indicesa set of point indices to use from cloud
[out]pminthe coordinates of the "minimum" point in cloud (one end of the segment)
[out]pmaxthe coordinates of the "maximum" point in cloud (the other end of the segment)
Returns:
the length of segment length

Definition at line 139 of file common/include/pcl/common/distances.h.

void pcl::getMeanStd ( const std::vector< float > &  values,
double &  mean,
double &  stddev 
) [inline]

Compute both the mean and the standard deviation of an array of values.

Parameters:
valuesthe array of values
meanthe resultant mean of the distribution
stddevthe resultant standard deviation of the distribution

Definition at line 56 of file common.hpp.

void pcl::getMeanStdDev ( const std::vector< float > &  values,
double &  mean,
double &  stddev 
)

Compute both the mean and the standard deviation of an array of values.

Parameters:
valuesthe array of values
meanthe resultant mean of the distribution
stddevthe resultant standard deviation of the distribution

Definition at line 72 of file common/src/common.cpp.

template<typename PointT >
void pcl::getMinMax ( const PointT histogram,
int  len,
float &  min_p,
float &  max_p 
) [inline]

Get the minimum and maximum values on a point histogram.

Parameters:
histogramthe point representing a multi-dimensional histogram
lenthe length of the histogram
min_pthe resultant minimum
max_pthe resultant maximum

Definition at line 370 of file common.hpp.

void pcl::getMinMax ( const sensor_msgs::PointCloud2 &  cloud,
int  idx,
const std::string &  field_name,
float &  min_p,
float &  max_p 
)

Get the minimum and maximum values on a point histogram.

Parameters:
cloudthe cloud containing multi-dimensional histograms
idxpoint index representing the histogram that we need to compute min/max for
field_namethe field name containing the multi-dimensional histogram
min_pthe resultant minimum
max_pthe resultant maximum

Definition at line 43 of file common/src/common.cpp.

void pcl::getMinMax3D ( const sensor_msgs::PointCloud2ConstPtr &  cloud,
int  x_idx,
int  y_idx,
int  z_idx,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt 
)

Obtain the maximum and minimum points in 3D from a given point cloud.

Parameters:
[in]cloudthe pointer to a sensor_msgs::PointCloud2 dataset
[in]x_idxthe index of the X channel
[in]y_idxthe index of the Y channel
[in]z_idxthe index of the Z channel
[out]min_ptthe minimum data point
[out]max_ptthe maximum data point

Definition at line 47 of file filters/src/voxel_grid.cpp.

void pcl::getMinMax3D ( const sensor_msgs::PointCloud2ConstPtr &  cloud,
int  x_idx,
int  y_idx,
int  z_idx,
const std::string &  distance_field_name,
float  min_distance,
float  max_distance,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt,
bool  limit_negative = false 
)

Obtain the maximum and minimum points in 3D from a given point cloud.

Note:
Performs internal data filtering as well.
Parameters:
[in]cloudthe pointer to a sensor_msgs::PointCloud2 dataset
[in]x_idxthe index of the X channel
[in]y_idxthe index of the Y channel
[in]z_idxthe index of the Z channel
[in]distance_field_namethe name of the dimension to filter data along to
[in]min_distancethe minimum acceptable value in distance_field_name data
[in]max_distancethe maximum acceptable value in distance_field_name data
[out]min_ptthe minimum data point
[out]max_ptthe maximum data point
[in]limit_negativefalse if data inside of the [min_distance; max_distance] interval should be considered, true otherwise.

Definition at line 92 of file filters/src/voxel_grid.cpp.

template<typename PointT >
void pcl::getMinMax3D ( const pcl::PointCloud< PointT > &  cloud,
PointT min_pt,
PointT max_pt 
) [inline]

Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.

Parameters:
cloudthe point cloud data message
min_ptthe resultant minimum bounds
max_ptthe resultant maximum bounds

Definition at line 205 of file common.hpp.

template<typename PointT >
void pcl::getMinMax3D ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt 
) [inline]

Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.

Parameters:
cloudthe point cloud data message
min_ptthe resultant minimum bounds
max_ptthe resultant maximum bounds

Definition at line 242 of file common.hpp.

template<typename PointT >
void pcl::getMinMax3D ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt 
) [inline]

Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.

Parameters:
cloudthe point cloud data message
indicesthe vector of point indices to use from cloud
min_ptthe resultant minimum bounds
max_ptthe resultant maximum bounds

Definition at line 318 of file common.hpp.

template<typename PointT >
void pcl::getMinMax3D ( const pcl::PointCloud< PointT > &  cloud,
const pcl::PointIndices &  indices,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt 
) [inline]

Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud.

Parameters:
cloudthe point cloud data message
indicesthe vector of point indices to use from cloud
min_ptthe resultant minimum bounds
max_ptthe resultant maximum bounds

Definition at line 280 of file common.hpp.

template<typename PointT >
void pcl::getMinMax3D ( const typename pcl::PointCloud< PointT >::ConstPtr &  cloud,
const std::string &  distance_field_name,
float  min_distance,
float  max_distance,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt,
bool  limit_negative = false 
)

Get the minimum and maximum values on each of the 3 (x-y-z) dimensions in a given pointcloud, without considering points outside of a distance threshold from the laser origin.

Parameters:
[in]cloudthe point cloud data message
[in]distance_field_namethe field name that contains the distance values
[in]min_distancethe minimum distance a point will be considered from
[in]max_distancethe maximum distance a point will be considered to
[out]min_ptthe resultant minimum bounds
[out]max_ptthe resultant maximum bounds
[in]limit_negativeif set to true, then all points outside of the interval (min_distance;max_distace) are considered

Definition at line 46 of file voxel_grid.hpp.

bool pcl::getPointCloudAsEigen ( const sensor_msgs::PointCloud2 &  in,
Eigen::MatrixXf &  out 
)

Copy the XYZ dimensions of a sensor_msgs::PointCloud2 into Eigen format.

Parameters:
[in]inthe point cloud message
[out]outthe resultant Eigen MatrixXf format containing XYZ0 / point

Definition at line 254 of file common/src/io.cpp.

template<typename PointT >
void pcl::getPointCloudDifference ( const pcl::PointCloud< PointT > &  src,
const pcl::PointCloud< PointT > &  tgt,
double  threshold,
const boost::shared_ptr< pcl::search::Search< PointT > > &  tree,
pcl::PointCloud< PointT > &  output 
)

Obtain the difference between two aligned point clouds as another point cloud, given a distance threshold.

Parameters:
srcthe input point cloud source
tgtthe input point cloud target we need to obtain the difference against
thresholdthe distance threshold (tolerance) for point correspondences. (e.g., check if f a point p1 from src has a correspondence > threshold than a point p2 from tgt)
treethe spatial locator (e.g., kd-tree) used for nearest neighbors searching built over tgt
outputthe resultant output point cloud difference

Definition at line 46 of file segment_differences.hpp.

template<typename PointT >
void pcl::getPointsInBox ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Vector4f &  min_pt,
Eigen::Vector4f &  max_pt,
std::vector< int > &  indices 
) [inline]

Get a set of points residing in a box given its bounds.

Parameters:
cloudthe point cloud data message
min_ptthe minimum bounds
max_ptthe maximum bounds
indicesthe resultant set of point indices residing in the box

Definition at line 72 of file common.hpp.

void pcl::getRejectedQueryIndices ( const pcl::Correspondences correspondences_before,
const pcl::Correspondences correspondences_after,
std::vector< int > &  indices,
bool  presorting_required = true 
)

Get the query points of correspondences that are present in one correspondence vector but not in the other, e.g., to compare correspondences before and after rejection.

Parameters:
[in]correspondences_beforeVector of correspondences before rejection
[in]correspondences_afterVector of correspondences after rejection
[out]indicesQuery point indices of correspondences that have been rejected
[in]presorting_requiredEnable/disable internal sorting of vectors. By default (true), vectors are internally sorted before determining their difference. If the order of correspondences in correspondences_after is not different (has not been changed) from the order in correspondences_before this pre-processing step can be disabled in order to gain efficiency. In order to disable pre-sorting set presorting_requered to false.

Definition at line 43 of file correspondence.cpp.

double pcl::getTime ( ) [inline]

Definition at line 142 of file common/time.h.

void pcl::getTransformation ( float  x,
float  y,
float  z,
float  roll,
float  pitch,
float  yaw,
Eigen::Affine3f &  t 
) [inline]

Create a transformation from the given translation and Euler angles (XYZ-convention)

Parameters:
[in]xthe input x translation
[in]ythe input y translation
[in]zthe input z translation
[in]rollthe input roll angle
[in]pitchthe input pitch angle
[in]yawthe input yaw angle
[out]tthe resulting transformation matrix

Definition at line 113 of file eigen.hpp.

Eigen::Affine3f pcl::getTransformation ( float  x,
float  y,
float  z,
float  roll,
float  pitch,
float  yaw 
) [inline]

Create a transformation from the given translation and Euler angles (XYZ-convention)

Parameters:
[in]xthe input x translation
[in]ythe input y translation
[in]zthe input z translation
[in]rollthe input roll angle
[in]pitchthe input pitch angle
[in]yawthe input yaw angle
Returns:
the resulting transformation matrix

Definition at line 123 of file eigen.hpp.

void pcl::getTransformationFromTwoUnitVectors ( const Eigen::Vector3f &  y_direction,
const Eigen::Vector3f &  z_axis,
Eigen::Affine3f &  transformation 
) [inline]

Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]y_directionthe y direction
[in]z_axisthe z-axis
[out]transformationthe resultant 3D rotation

Definition at line 76 of file eigen.hpp.

Eigen::Affine3f pcl::getTransformationFromTwoUnitVectors ( const Eigen::Vector3f &  y_direction,
const Eigen::Vector3f &  z_axis 
) [inline]

Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]y_directionthe y direction
[in]z_axisthe z-axis
Returns:
transformation the resultant 3D rotation

Definition at line 81 of file eigen.hpp.

void pcl::getTransformationFromTwoUnitVectorsAndOrigin ( const Eigen::Vector3f &  y_direction,
const Eigen::Vector3f &  z_axis,
const Eigen::Vector3f &  origin,
Eigen::Affine3f &  transformation 
) [inline]

Get the transformation that will translate orign to (0,0,0) and rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]y_directionthe y direction
[in]z_axisthe z-axis
[in]originthe origin
[in]transformationthe resultant transformation matrix

Definition at line 88 of file eigen.hpp.

void pcl::getTransFromUnitVectorsXY ( const Eigen::Vector3f &  x_axis,
const Eigen::Vector3f &  y_direction,
Eigen::Affine3f &  transformation 
) [inline]

Get the unique 3D rotation that will rotate x_axis into (1,0,0) and y_direction into a vector with z=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]x_axisthe x-axis
[in]y_directionthe y direction
[out]transformationthe resultant 3D rotation

Definition at line 57 of file eigen.hpp.

Eigen::Affine3f pcl::getTransFromUnitVectorsXY ( const Eigen::Vector3f &  x_axis,
const Eigen::Vector3f &  y_direction 
) [inline]

Get the unique 3D rotation that will rotate x_axis into (1,0,0) and y_direction into a vector with z=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]x_axisthe x-axis
[in]y_directionthe y direction
Returns:
the resulting 3D rotation

Definition at line 69 of file eigen.hpp.

void pcl::getTransFromUnitVectorsZY ( const Eigen::Vector3f &  z_axis,
const Eigen::Vector3f &  y_direction,
Eigen::Affine3f &  transformation 
) [inline]

Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]z_axisthe z-axis
[in]y_directionthe y direction
[out]transformationthe resultant 3D rotation

Definition at line 38 of file eigen.hpp.

Eigen::Affine3f pcl::getTransFromUnitVectorsZY ( const Eigen::Vector3f &  z_axis,
const Eigen::Vector3f &  y_direction 
) [inline]

Get the unique 3D rotation that will rotate z_axis into (0,0,1) and y_direction into a vector with x=0 (or into (0,1,0) should y_direction be orthogonal to z_axis)

Parameters:
[in]z_axisthe z-axis
[in]y_directionthe y direction
Returns:
the resultant 3D rotation

Definition at line 50 of file eigen.hpp.

void pcl::getTranslationAndEulerAngles ( const Eigen::Affine3f &  t,
float &  x,
float &  y,
float &  z,
float &  roll,
float &  pitch,
float &  yaw 
) [inline]

Extract x,y,z and the Euler angles (XYZ-convention) from the given transformation

Parameters:
[in]tthe input transformation matrix
[out]xthe resulting x translation
[out]ythe resulting y translation
[out]zthe resulting z translation
[out]rollthe resulting roll angle
[out]pitchthe resulting pitch angle
[out]yawthe resulting yaw angle

Definition at line 103 of file eigen.hpp.

template<typename FloatVectorT >
float pcl::HIK_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the HIK norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 225 of file norms.hpp.

template<typename Matrix >
Matrix::Scalar pcl::invert2x2 ( const Matrix &  matrix,
Matrix &  inverse 
) [inline]

Calculate the inverse of a 2x2 matrix.

Parameters:
[in]matrixmatrix to be inverted
[out]inversethe resultant inverted matrix
Note:
only the upper triangular part is taken into account => non symmetric matrices will give wrong results
Returns:
determinant of the original matrix => if 0 no inverse exists => result is invalid

Definition at line 603 of file eigen.h.

template<typename Matrix >
Matrix::Scalar pcl::invert3x3Matrix ( const Matrix &  matrix,
Matrix &  inverse 
) [inline]

Calculate the inverse of a general 3x3 matrix.

Parameters:
[in]matrixmatrix to be inverted
[out]inversethe resultant inverted matrix
Returns:
determinant of the original matrix => if 0 no inverse exists => result is invalid

Definition at line 668 of file eigen.h.

template<typename Matrix >
Matrix::Scalar pcl::invert3x3SymMatrix ( const Matrix &  matrix,
Matrix &  inverse 
) [inline]

Calculate the inverse of a 3x3 symmetric matrix.

Parameters:
[in]matrixmatrix to be inverted
[out]inversethe resultant inverted matrix
Note:
only the upper triangular part is taken into account => non symmetric matrices will give wrong results
Returns:
determinant of the original matrix => if 0 no inverse exists => result is invalid

Definition at line 628 of file eigen.h.

bool pcl::isBetterCorrespondence ( const Correspondence &  pc1,
const Correspondence &  pc2 
) [inline]

Comparator to enable us to sort a vector of PointCorrespondences according to their scores using std::sort (begin(), end(), isBetterCorrespondence);.

Definition at line 157 of file correspondence.h.

template<typename PointT >
bool pcl::isFinite ( const PointT pt) [inline]

Tests if the 3D components of a point are all finite param[in] pt point to be tested

Definition at line 1309 of file point_types.hpp.

template<>
bool pcl::isFinite< pcl::Normal > ( const pcl::Normal n) [inline]

Definition at line 1316 of file point_types.hpp.

template<typename PointT >
bool pcl::isPointIn2DPolygon ( const PointT point,
const pcl::PointCloud< PointT > &  polygon 
)

General purpose method for checking if a 3D point is inside or outside a given 2D polygon.

Note:
this method accepts any general 3D point that is projected onto the 2D polygon, but performs an internal XY projection of both the polygon and the point.
Parameters:
pointa 3D point projected onto the same plane as the polygon
polygona polygon

Definition at line 47 of file extract_polygonal_prism_data.hpp.

template<typename Type >
bool pcl::isValueFinite ( const sensor_msgs::PointCloud2 &  cloud,
const unsigned int  point_index,
const int  point_size,
const unsigned int  field_idx,
const unsigned int  fields_count 
) [inline]

Check whether a given value of type Type (uchar, char, uint, int, float, double, ...) is finite or not.

Parameters:
[in]cloudthe cloud that contains the data
[in]point_indexthe index of the point
[in]point_sizethe size of the point in the cloud
[in]field_idxthe index of the dimension/field
[in]fields_countthe current fields count
Returns:
true if the value is finite, false otherwise

Definition at line 292 of file io/include/pcl/io/file_io.h.

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 72 of file gp3.h.

template<typename PointT >
bool pcl::isXYPointIn2DXYPolygon ( const PointT point,
const pcl::PointCloud< PointT > &  polygon 
)

Check if a 2d point (X and Y coordinates considered only!) is inside or outside a given polygon. This method assumes that both the point and the polygon are projected onto the XY plane.

Note:
(This is highly optimized code taken from http://www.visibone.com/inpoly/) Copyright (c) 1995-1996 Galacticomm, Inc. Freeware source code.
Parameters:
pointa 3D point projected onto the same plane as the polygon
polygona polygon

Definition at line 107 of file extract_polygonal_prism_data.hpp.

template<typename FloatVectorT >
float pcl::JM_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the JM norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 120 of file norms.hpp.

template<typename FloatVectorT >
float pcl::K_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim,
float  P1,
float  P2 
) [inline]

Compute the K norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
P1the first parameter
P2the second parameter
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 200 of file norms.hpp.

template<typename FloatVectorT >
float pcl::KL_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the KL between two discrete probability density functions.

Parameters:
Athe first discrete PDF
Bthe second discrete PDF
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 211 of file norms.hpp.

template<typename FloatVectorT >
float pcl::L1_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the L1 norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 80 of file norms.hpp.

template<typename FloatVectorT >
float pcl::L2_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the L2 norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 103 of file norms.hpp.

template<typename FloatVectorT >
float pcl::L2_Norm_SQR ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the squared L2 norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 90 of file norms.hpp.

void pcl::lineToLineSegment ( const Eigen::VectorXf &  line_a,
const Eigen::VectorXf &  line_b,
Eigen::Vector4f &  pt1_seg,
Eigen::Vector4f &  pt2_seg 
)

Get the shortest 3D segment between two 3D lines.

Parameters:
line_athe coefficients of the first line (point, direction)
line_bthe coefficients of the second line (point, direction)
pt1_segthe first point on the line segment
pt2_segthe second point on the line segment

Definition at line 40 of file distances.cpp.

bool pcl::lineWithLineIntersection ( const Eigen::VectorXf &  line_a,
const Eigen::VectorXf &  line_b,
Eigen::Vector4f &  point,
double  sqr_eps = 1e-4 
)

Get the intersection of a two 3D lines in space as a 3D point.

Parameters:
line_athe coefficients of the first line (point, direction)
line_bthe coefficients of the second line (point, direction)
pointholder for the computed 3D point
sqr_epsmaximum allowable squared distance to the true solution

Definition at line 41 of file intersections.cpp.

bool pcl::lineWithLineIntersection ( const pcl::ModelCoefficients &  line_a,
const pcl::ModelCoefficients &  line_b,
Eigen::Vector4f &  point,
double  sqr_eps = 1e-4 
)

Get the intersection of a two 3D lines in space as a 3D point.

Parameters:
line_athe coefficients of the first line (point, direction)
line_bthe coefficients of the second line (point, direction)
pointholder for the computed 3D point
sqr_epsmaximum allowable squared distance to the true solution

Definition at line 60 of file intersections.cpp.

template<typename FloatVectorT >
float pcl::Linf_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the L-infinity norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 110 of file norms.hpp.

template<typename Derived >
void pcl::loadBinary ( Eigen::MatrixBase< Derived > const &  matrix,
std::istream &  file 
)

Read a matrix from an input stream.

Parameters:
[out]matrixthe resulting matrix, read from the input stream
[in,out]filethe input stream

Definition at line 145 of file eigen.hpp.

unsigned int pcl::lzfCompress ( const void *const  in_data,
unsigned int  in_len,
void *  out_data,
unsigned int  out_len 
)

Compress in_len bytes stored at the memory block starting at in_data and write the result to out_data, up to a maximum length of out_len bytes using Marc Lehmann's LZF algorithm.

If the output buffer is not large enough or any error occurs return 0, otherwise return the number of bytes used, which might be considerably more than in_len (but less than 104% of the original size), so it makes sense to always use out_len == in_len - 1), to ensure _some_ compression, and store the data uncompressed otherwise (with a flag, of course.

Note:
The buffers must not be overlapping.
Parameters:
[in]in_datathe input uncompressed buffer
[in]in_lenthe length of the input buffer
[out]out_datathe output buffer where the compressed result will be stored
[out]out_lenthe length of the output buffer

Definition at line 84 of file lzf.cpp.

unsigned int pcl::lzfDecompress ( const void *const  in_data,
unsigned int  in_len,
void *  out_data,
unsigned int  out_len 
)

Decompress data compressed with the lzfCompress function and stored at location in_data and length in_len. The result will be stored at out_data up to a maximum of out_len characters.

If the output buffer is not large enough to hold the decompressed data, a 0 is returned and errno is set to E2BIG. Otherwise the number of decompressed bytes (i.e. the original length of the data) is returned.

If an error in the compressed data is detected, a zero is returned and errno is set to EINVAL.

This function is very fast, about as fast as a copying loop.

Parameters:
[in]in_datathe input compressed buffer
[in]in_lenthe length of the input buffer
[out]out_datathe output buffer (must be resized to out_len)
[out]out_lenthe length of the output buffer

Definition at line 276 of file lzf.cpp.

float pcl::normAngle ( float  alpha) [inline]

Normalize an angle to (-PI, PI].

Parameters:
alphathe input angle (in radians)

Definition at line 42 of file angles.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const RangeImageBorderExtractor::Parameters &  p 
) [inline]

Definition at line 57 of file range_image_border_extractor.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const Correspondence &  c 
) [inline]

overloaded << operator

Definition at line 86 of file correspondence.h.

template<typename real >
std::ostream & pcl::operator<< ( std::ostream &  os,
const BivariatePolynomialT< real > &  p 
)

Definition at line 230 of file bivariate_polynomial.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const NarfKeypoint::Parameters &  p 
) [inline]

Definition at line 191 of file narf_keypoint.h.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZ &  p 
) [inline]

Definition at line 212 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZI &  p 
) [inline]

Definition at line 277 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZL &  p 
) [inline]

Definition at line 301 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const Label &  p 
) [inline]

Definition at line 312 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZRGBA &  p 
) [inline]

Definition at line 361 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZRGB &  p 
) [inline]

Definition at line 444 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZRGBL &  p 
) [inline]

Definition at line 473 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZHSV &  p 
) [inline]

Definition at line 512 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXY &  p 
) [inline]

Definition at line 527 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const InterestPoint &  p 
) [inline]

Definition at line 549 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const Normal &  p 
) [inline]

Definition at line 588 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const Axis &  p 
) [inline]

Definition at line 619 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const _Axis &  p 
) [inline]

Definition at line 625 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointNormal &  p 
) [inline]

Definition at line 659 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZRGBNormal &  p 
) [inline]

Definition at line 736 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointXYZINormal &  p 
) [inline]

Definition at line 772 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointWithRange &  p 
) [inline]

Definition at line 805 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const RangeImage &  r 
) [inline]

/ingroup range_image

Definition at line 813 of file range_image.h.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointWithViewpoint &  p 
) [inline]

Definition at line 839 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const MomentInvariants &  p 
) [inline]

Definition at line 852 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PrincipalRadiiRSD &  p 
) [inline]

Definition at line 865 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const Boundary &  p 
) [inline]

Definition at line 878 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PrincipalCurvatures &  p 
) [inline]

Definition at line 902 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PFHSignature125 &  p 
) [inline]

Definition at line 915 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PFHRGBSignature250 &  p 
) [inline]

Definition at line 929 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PPFSignature &  p 
) [inline]

Definition at line 944 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PPFRGBSignature &  p 
) [inline]

Definition at line 959 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const NormalBasedSignature12 &  p 
) [inline]

Definition at line 974 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const ShapeContext &  p 
) [inline]

Definition at line 990 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const SHOT &  p 
) [inline]

Definition at line 1009 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const SHOT352 &  p 
) [inline]

Definition at line 1027 of file point_types.hpp.

template<typename PointT >
std::ostream& pcl::operator<< ( std::ostream &  s,
const pcl::PointCloud< PointT > &  p 
)

Definition at line 1034 of file point_cloud.h.

std::ostream& pcl::operator<< ( std::ostream &  os,
const SHOT1344 &  p 
) [inline]

Definition at line 1045 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const ReferenceFrame &  p 
) [inline]

Definition at line 1100 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const FPFHSignature33 &  p 
) [inline]

Definition at line 1113 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const VFHSignature308 &  p 
) [inline]

Definition at line 1127 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const ESFSignature640 &  p 
) [inline]

Definition at line 1141 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const GFPFHSignature16 &  p 
) [inline]

Definition at line 1156 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const Narf36 &  p 
) [inline]

Definition at line 1171 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const BorderDescription &  p 
) [inline]

Definition at line 1189 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const IntensityGradient &  p 
) [inline]

Definition at line 1211 of file point_types.hpp.

template<int N>
std::ostream& pcl::operator<< ( std::ostream &  os,
const Histogram< N > &  p 
) [inline]

Definition at line 1226 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointWithScale &  p 
) [inline]

Definition at line 1252 of file point_types.hpp.

std::ostream& pcl::operator<< ( std::ostream &  os,
const PointSurfel &  p 
) [inline]

Definition at line 1291 of file point_types.hpp.

pcl::PCL_DEPRECATED ( inline std::ostream &operator<<   std::ostream &os, const SHOT &p,
"SHOT POINT IS  DEPRECATED,
USE SHOT352 FOR SHAPE AND SHOT1344 FOR SHAPE+COLOR INSTEAD"   
)
template<typename PointInT , typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimationOMP  ,
"SHOTEstimationOMP<..., pcl::SHOT, ...> IS  DEPRECATED,
USE SHOTEstimationOMP<..., pcl::SHOT352,...> INSTEAD"   
)
template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimationOMP  ,
"SHOTEstimationOMP<pcl::PointXYZRGBA,...,pcl::SHOT,...> IS  DEPRECATED,
USE SHOTEstimationOMP< pcl::PointXYZRGBA,..., pcl::SHOT352,...> FOR SHAPE AND SHOTColorEstimationOMP< pcl::PointXYZRGBA,..., pcl::SHOT1344,...> FOR SHAPE+COLOR INSTEAD"   
)

Empty constructor.

Initialize the scheduler and set the number of threads to use.

Parameters:
nr_threadsthe number of hardware threads to use (-1 sets the value back to automatic)

Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()

Parameters:
outputthe resultant point cloud model dataset that contains the SHOT feature estimates

The number of threads the scheduler should use.

Definition at line 257 of file shot_omp.h.

template<typename PointInT , typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimation  ,
"SHOTEstimation<..., pcl::SHOT, ...> IS  DEPRECATED,
USE SHOTEstimation<..., pcl::SHOT352,...> INSTEAD"   
)

SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.

Note:
If you use this code in any academic work, please cite:
  • F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
  • F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D Feature Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.
Author:
Samuele Salti, Federico Tombari
template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimation  ,
"SHOTEstimation<pcl::PointXYZRGBA,...,pcl::SHOT,...> IS  DEPRECATED,
USE SHOTEstimation< pcl::PointXYZRGBA,..., pcl::SHOT352,...> FOR SHAPE AND SHOTColorEstimation< pcl::PointXYZRGBA,..., pcl::SHOT1344,...> FOR SHAPE+COLOR INSTEAD"   
)

SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.

Note:
If you use this code in any academic work, please cite:
  • F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
  • F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D Feature Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.
Author:
Samuele Salti, Federico Tombari

Empty constructor.

Parameters:
[in]describe_shape
[in]describe_color
[in]nr_shape_bins
[in]nr_color_bins

Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals

Parameters:
[in]indexthe index of the point in indices_
[in]indicesthe k-neighborhood point indices in surface_
[in]sqr_diststhe k-neighborhood point distances in surface_
[out]shotthe resultant SHOT descriptor representing the feature at the query point

Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()

Parameters:
[out]outputthe resultant point cloud model dataset that contains the SHOT feature estimates

Quadrilinear interpolation; used when color and shape descriptions are both activated

Parameters:
[in]indicesthe neighborhood point indices
[in]sqr_diststhe neighborhood point distances
[in]indexthe index of the point in indices_
[out]binDistanceShapethe resultant distance shape histogram
[out]binDistanceColorthe resultant color shape histogram
[in]nr_bins_shapethe number of bins in the shape histogram
[in]nr_bins_colorthe number of bins in the color histogram
[out]shotthe resultant SHOT histogram

Converts RGB triplets to CIELab space.

Parameters:
[in]Rthe red channel
[in]Gthe green channel
[in]Bthe blue channel
[out]Lthe lightness
[out]Athe first color-opponent dimension
[out]B2the second color-opponent dimension

Compute shape descriptor.

Compute color descriptor.

The number of bins in each color histogram.

Definition at line 706 of file shot.h.

template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimation  ,
"SHOTEstimation<pcl::PointXYZRGBA,...,Eigen::MatrixXf,...> IS  DEPRECATED,
USE SHOTColorEstimation< pcl::PointXYZRGBA,..., Eigen::MatrixXf,...> FOR SHAPE AND SHAPE+COLOR INSTEAD"   
)

SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.

Note:
If you use this code in any academic work, please cite:
  • F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
  • F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D Feature Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.
Author:
Samuele Salti, Federico Tombari

Empty constructor.

Parameters:
[in]describe_shape
[in]describe_color
[in]nr_shape_bins
[in]nr_color_bins

Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()

Parameters:
[out]outputthe resultant point cloud model dataset that contains the SHOT feature estimates

Make the compute (&PointCloudOut); inaccessible from outside the class

Parameters:
[out]outputthe output point cloud

Definition at line 838 of file shot.h.

template<typename FloatVectorT >
float pcl::PF_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim,
float  P1,
float  P2 
) [inline]

Compute the PF norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
P1the first parameter
P2the second parameter
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 189 of file norms.hpp.

bool pcl::planeWithPlaneIntersection ( const Eigen::Vector4f &  plane_a,
const Eigen::Vector4f &  fplane_b,
Eigen::VectorXf &  line,
double  angular_tolerance = 0.1 
)

Determine the line of intersection of two non-parallel planes using lagrange multipliers in: "Intersection of Two Planes, John Krumm, Microsoft Research, Redmond, WA, USA".

Parameters:
[in]coefficientsof plane A and plane B in the form ax + by + cz + d = 0
[out]coefficientsof line where line.tail<3>() = direction vector and line.head<3>() the point on the line clossest to (0, 0, 0)
Returns:
true if succeeded/planes aren't parallel

Definition at line 70 of file intersections.cpp.

void pcl::PointCloudXYZRGBtoXYZHSV ( PointCloud< PointXYZRGB > &  in,
PointCloud< PointXYZHSV > &  out 
) [inline]

Convert a XYZRGB point cloud to a XYZHSV.

Parameters:
[in]inthe input XYZRGB point cloud
[out]outthe output XYZHSV point cloud

Definition at line 171 of file point_types_conversion.h.

void pcl::PointCloudXYZRGBtoXYZI ( PointCloud< PointXYZRGB > &  in,
PointCloud< PointXYZI > &  out 
) [inline]

Convert a XYZRGB point cloud to a XYZI.

Parameters:
[in]inthe input XYZRGB point cloud
[out]outthe output XYZI point cloud

Definition at line 188 of file point_types_conversion.h.

template<typename Point >
double pcl::pointToPlaneDistance ( const Point p,
double  a,
double  b,
double  c,
double  d 
) [inline]

Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.

Parameters:
pa point
athe normalized a coefficient of a plane
bthe normalized b coefficient of a plane
cthe normalized c coefficient of a plane
dthe normalized d coefficient of a plane

Definition at line 107 of file sac_model_plane.h.

template<typename Point >
double pcl::pointToPlaneDistance ( const Point p,
const Eigen::Vector4f &  plane_coefficients 
) [inline]

Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.

Parameters:
pa point
plane_coefficientsthe normalized coefficients (a, b, c, d) of a plane

Definition at line 118 of file sac_model_plane.h.

template<typename Point >
double pcl::pointToPlaneDistanceSigned ( const Point p,
double  a,
double  b,
double  c,
double  d 
) [inline]

Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.

Parameters:
pa point
athe normalized a coefficient of a plane
bthe normalized b coefficient of a plane
cthe normalized c coefficient of a plane
dthe normalized d coefficient of a plane

Definition at line 82 of file sac_model_plane.h.

template<typename Point >
double pcl::pointToPlaneDistanceSigned ( const Point p,
const Eigen::Vector4f &  plane_coefficients 
) [inline]

Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.

Parameters:
pa point
plane_coefficientsthe normalized coefficients (a, b, c, d) of a plane

Definition at line 93 of file sac_model_plane.h.

void pcl::PointXYZHSVtoXYZRGB ( PointXYZHSV &  in,
PointXYZRGB &  out 
) [inline]

Convert a XYZHSV point type to a XYZRGB.

Parameters:
[in]inthe input XYZHSV point
[out]outthe output XYZRGB point

Definition at line 103 of file point_types_conversion.h.

void pcl::PointXYZRGBtoXYZHSV ( PointXYZRGB &  in,
PointXYZHSV &  out 
) [inline]

Convert a XYZRGB point type to a XYZHSV.

Parameters:
[in]inthe input XYZRGB point
[out]outthe output XYZHSV point

Definition at line 67 of file point_types_conversion.h.

void pcl::PointXYZRGBtoXYZI ( PointXYZRGB &  in,
PointXYZI &  out 
) [inline]

Convert a XYZRGB point type to a XYZI.

Parameters:
[in]inthe input XYZRGB point
[out]outthe output XYZI point

Definition at line 54 of file point_types_conversion.h.

template<typename Point >
void pcl::projectPoint ( const Point p,
const Eigen::Vector4f &  model_coefficients,
Point q 
) [inline]

Project a point on a planar model given by a set of normalized coefficients.

Parameters:
[in]pthe input point to project
[in]model_coefficientsthe coefficients of the plane (a, b, c, d) that satisfy ax+by+cz+d=0
[out]qthe resultant projected point

Definition at line 55 of file sac_model_plane.h.

float pcl::rad2deg ( float  alpha) [inline]

Convert an angle from radians to degrees.

Parameters:
alphathe input angle (in radians)

Definition at line 55 of file angles.hpp.

double pcl::rad2deg ( double  alpha) [inline]

Convert an angle from radians to degrees.

Parameters:
alphathe input angle (in radians)

Definition at line 67 of file angles.hpp.

template<typename PointT >
void pcl::removeNaNFromPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
std::vector< int > &  index 
)

Removes points with x, y, or z equal to NaN.

Parameters:
cloud_inthe input point cloud
indexthe mapping (ordered): cloud_out.points[i] = cloud_in.points[index[i]]
Note:
The density of the point cloud is lost.
Can be called with cloud_in == cloud_out

Definition at line 45 of file filter_indices.hpp.

template<typename PointT >
void pcl::removeNaNFromPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
std::vector< int > &  index 
)

Removes points with x, y, or z equal to NaN.

Parameters:
[in]cloud_inthe input point cloud
[out]cloud_outthe input point cloud
[out]indexthe mapping (ordered): cloud_out.points[i] = cloud_in.points[index[i]]
Note:
The density of the point cloud is lost.
Can be called with cloud_in == cloud_out

Definition at line 45 of file filter.hpp.

static const std::map<pcl::SacModel, unsigned int> pcl::SAC_SAMPLE_SIZE ( sample_size_pairs  ,
sample_size_pairs sizeofsample_size_pairs)/sizeof(SampleSizeModel 
) [static]
template<typename Derived >
void pcl::saveBinary ( const Eigen::MatrixBase< Derived > &  matrix,
std::ostream &  file 
)

Write a matrix to an output stream.

Parameters:
[in]matrixthe matrix to output
[out]filethe output stream

Definition at line 131 of file eigen.hpp.

template<typename FloatVectorT >
float pcl::selectNorm ( FloatVectorT  A,
FloatVectorT  B,
int  dim,
NormType  norm_type 
) [inline]

Method that calculates any norm type available, based on the norm_type variable.

Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 42 of file norms.hpp.

void pcl::solvePlaneParameters ( const Eigen::Matrix3f &  covariance_matrix,
const Eigen::Vector4f &  point,
Eigen::Vector4f &  plane_parameters,
float &  curvature 
) [inline]

Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.

Parameters:
covariance_matrixthe 3x3 covariance matrix
pointa point lying on the least-squares plane (SSE aligned)
plane_parametersthe resultant plane parameters as: a, b, c, d (ax + by + cz + d = 0)
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 47 of file feature.hpp.

void pcl::solvePlaneParameters ( const Eigen::Matrix3f &  covariance_matrix,
float &  nx,
float &  ny,
float &  nz,
float &  curvature 
) [inline]

Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.

Parameters:
covariance_matrixthe 3x3 covariance matrix
nxthe resultant X component of the plane normal
nythe resultant Y component of the plane normal
nzthe resultant Z component of the plane normal
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 60 of file feature.hpp.

double pcl::sqrPointToLineDistance ( const Eigen::Vector4f &  pt,
const Eigen::Vector4f &  line_pt,
const Eigen::Vector4f &  line_dir 
) [inline]

Get the square distance from a point to a line (represented by a point and a direction)

Parameters:
pta point
line_pta point on the line (make sure that line_pt[3] = 0 as there are no internal checks!)
line_dirthe line direction

Definition at line 69 of file common/include/pcl/common/distances.h.

double pcl::sqrPointToLineDistance ( const Eigen::Vector4f &  pt,
const Eigen::Vector4f &  line_pt,
const Eigen::Vector4f &  line_dir,
const double  sqr_length 
) [inline]

Get the square distance from a point to a line (represented by a point and a direction)

Note:
This one is useful if one has to compute many distances to a fixed line, so the vector length can be pre-computed
Parameters:
pta point
line_pta point on the line (make sure that line_pt[3] = 0 as there are no internal checks!)
line_dirthe line direction
sqr_lengththe squared norm of the line direction

Definition at line 85 of file common/include/pcl/common/distances.h.

template<typename Scalar >
Scalar pcl::sqrt ( const Scalar &  val) [inline]

Definition at line 96 of file eigen.h.

template<>
double pcl::sqrt< double > ( const double &  val) [inline]

Definition at line 101 of file eigen.h.

template<>
float pcl::sqrt< float > ( const float &  val) [inline]

Definition at line 107 of file eigen.h.

template<>
long double pcl::sqrt< long double > ( const long double &  val) [inline]

Definition at line 113 of file eigen.h.

template<typename PointType1 , typename PointType2 >
float pcl::squaredEuclideanDistance ( const PointType1 &  p1,
const PointType2 &  p2 
) [inline]

Calculate the squared euclidean distance between the two given points.

Parameters:
[in]p1the first point
[in]p2the second point

Definition at line 174 of file common/include/pcl/common/distances.h.

template<typename FloatVectorT >
float pcl::Sublinear_Norm ( FloatVectorT  A,
FloatVectorT  B,
int  dim 
) [inline]

Compute the sublinear norm of the vector between two points.

Parameters:
Athe first point
Bthe second point
dimthe number of dimensions in A and B (dimensions must match)
Note:
FloatVectorT is any type of vector with its values accessible via [ ]

Definition at line 149 of file norms.hpp.

void pcl::throwPCLIOException ( const char *  function_name,
const char *  file_name,
unsigned  line_number,
const char *  format,
  ... 
) [inline]
Parameters:
[in]function_namethe name of the method where the exception was caused
[in]file_namethe name of the file where the exception was caused
[in]line_numberthe number of the line where the exception was caused
[in]formatprintf format

Definition at line 81 of file pcl_io_exception.h.

template<typename PointT >
void pcl::toROSMsg ( const pcl::PointCloud< PointT > &  cloud,
sensor_msgs::PointCloud2 &  msg 
)

Convert a pcl::PointCloud<T> object to a PointCloud2 binary data blob.

Parameters:
[in]cloudthe input pcl::PointCloud<T>
[out]msgthe resultant PointCloud2 binary blob
Todo:
msg.is_bigendian = ?;

Definition at line 233 of file conversions.h.

template<typename CloudT >
void pcl::toROSMsg ( const CloudT cloud,
sensor_msgs::Image &  msg 
)

Copy the RGB fields of a PointCloud into sensor_msgs::Image format.

Parameters:
[in]cloudthe point cloud message
[out]msgthe resultant sensor_msgs::Image CloudT cloud type, CloudT should be akin to pcl::PointCloud<pcl::PointXYZRGBA>
Note:
will throw std::runtime_error if there is a problem

Definition at line 271 of file conversions.h.

void pcl::toROSMsg ( const sensor_msgs::PointCloud2 &  cloud,
sensor_msgs::Image &  msg 
) [inline]

Copy the RGB fields of a PointCloud2 msg into sensor_msgs::Image format.

Parameters:
cloudthe point cloud message
msgthe resultant sensor_msgs::Image will throw std::runtime_error if there is a problem

Definition at line 304 of file conversions.h.

template<typename PointT >
PointT pcl::transformPoint ( const PointT point,
const Eigen::Affine3f &  transform 
) [inline]

Transform a point with members x,y,z.

Parameters:
[in]pointthe point to transform
[out]transformthe transformation to apply
Returns:
the transformed point

Definition at line 290 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Affine3f &  transform 
)

Apply an affine transform defined by an Eigen Transform.

Parameters:
cloud_inthe input point cloud
cloud_outthe resultant output point cloud
transforman affine transformation (typically a rigid transformation)
Note:
Can be used with cloud_in equal to cloud_out

Definition at line 39 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
const std::vector< int > &  indices,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Affine3f &  transform 
)

Apply an affine transform defined by an Eigen Transform.

Parameters:
cloud_inthe input point cloud
indicesthe set of point indices to use from the input point cloud
cloud_outthe resultant output point cloud
transforman affine transformation (typically a rigid transformation)
Note:
Can be used with cloud_in equal to cloud_out

Definition at line 79 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Matrix4f &  transform 
)

Apply an affine transform defined by an Eigen Transform.

Parameters:
cloud_inthe input point cloud
cloud_outthe resultant output point cloud
transforman affine transformation (typically a rigid transformation)
Note:
Can be used with cloud_in equal to cloud_out

Definition at line 169 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloud ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Vector3f &  offset,
const Eigen::Quaternionf &  rotation 
) [inline]

Apply a rigid transform defined by a 3D offset and a quaternion.

Parameters:
cloud_inthe input point cloud
cloud_outthe resultant output point cloud
offsetthe translation component of the rigid transformation
rotationthe rotation component of the rigid transformation

Definition at line 262 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloudWithNormals ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Affine3f &  transform 
)

Transform a point cloud and rotate its normals using an Eigen transform.

Parameters:
cloud_inthe input point cloud
cloud_outthe resultant output point cloud
transforman affine transformation (typically a rigid transformation)
Note:
Can be used with cloud_in equal to cloud_out

Definition at line 120 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloudWithNormals ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Matrix4f &  transform 
)

Transform a point cloud and rotate its normals using an Eigen transform.

Parameters:
cloud_inthe input point cloud
cloud_outthe resultant output point cloud
transforman affine transformation (typically a rigid transformation)
Note:
Can be used with cloud_in equal to cloud_out

Definition at line 210 of file transforms.hpp.

template<typename PointT >
void pcl::transformPointCloudWithNormals ( const pcl::PointCloud< PointT > &  cloud_in,
pcl::PointCloud< PointT > &  cloud_out,
const Eigen::Vector3f &  offset,
const Eigen::Quaternionf &  rotation 
) [inline]

Transform a point cloud and rotate its normals using an Eigen transform.

Parameters:
cloud_inthe input point cloud
cloud_outthe resultant output point cloud
offsetthe translation component of the rigid transformation
rotationthe rotation component of the rigid transformation

Definition at line 276 of file transforms.hpp.


Variable Documentation

Definition at line 451 of file point_representation.h.

const unsigned int pcl::edgeTable[256]

Definition at line 59 of file marching_cubes.h.

const int pcl::I_SHIFT_EDGE[3][2]
Initial value:
 {
    {0,1}, {1,3}, {1,2}
  }

Definition at line 58 of file grid_projection.h.

const int pcl::I_SHIFT_EP[12][2]
Initial value:
 {
    {0, 4}, {1, 5}, {2, 6}, {3, 7}, 
    {0, 1}, {1, 2}, {2, 3}, {3, 0},
    {4, 5}, {5, 6}, {6, 7}, {7, 4}
  }

The 12 edges of a cell.

Definition at line 48 of file grid_projection.h.

const int pcl::I_SHIFT_PT[4]
Initial value:
 {
    0, 4, 5, 7
  }

Definition at line 54 of file grid_projection.h.

const int pcl::SAC_LMEDS = 1 [static]

Definition at line 44 of file method_types.h.

const int pcl::SAC_MLESAC = 5 [static]

Definition at line 48 of file method_types.h.

const int pcl::SAC_MSAC = 2 [static]

Definition at line 45 of file method_types.h.

const int pcl::SAC_PROSAC = 6 [static]

Definition at line 49 of file method_types.h.

const int pcl::SAC_RANSAC = 0 [static]

Definition at line 43 of file method_types.h.

const int pcl::SAC_RMSAC = 4 [static]

Definition at line 47 of file method_types.h.

const int pcl::SAC_RRANSAC = 3 [static]

Definition at line 46 of file method_types.h.

const int pcl::triTable[256][16]

Definition at line 93 of file marching_cubes.h.



pcl
Author(s): Open Perception
autogenerated on Mon Oct 6 2014 03:19:15