Point Cloud Library (PCL)  1.3.1
Classes | Files | Typedefs | Enumerations | Functions
Module common

Detailed Description

Overview

The pcl_common library contains the common data structures and methods used by the majority of PCL libraries. The core data structures include the PointCloud class and a multitude of point types that are used to represent points, surface normals, RGB color values, feature descriptors, etc. It also contains numerous functions for computing distances/norms, means and covariances, angular conversions, geometric transformations, and more.

History

Requirements

Classes

class  pcl::BivariatePolynomialT
 This represents a bivariate polynomial and provides some functionality for it. More...
struct  pcl::NdConcatenateFunctor
 Helper functor structure for concatenate. More...
class  pcl::PCA
 Principal Component analysis (PCA) class. More...
class  pcl::PiecewiseLinearFunction
 This provides functionalities to efficiently return values for piecewise linear function. More...
struct  pcl::PointCorrespondence
 Representation of a (possible) correspondence between two points in two different coordinate frames (e.g. More...
struct  pcl::PointCorrespondence3D
 Representation of a (possible) correspondence between two 3D points in two different coordinate frames (e.g. More...
struct  pcl::PointCorrespondence6D
 Representation of a (possible) correspondence between two points (e.g. More...
class  pcl::PolynomialCalculationsT
 This provides some functionality for polynomials, like finding roots or approximating bivariate polynomials. More...
class  pcl::PosesFromMatches
 calculate 3D transformation based on point correspondencdes More...
class  pcl::StopWatch
 Simple stopwatch. More...
class  pcl::ScopeTime
 Class to measure the time spent in a scope. More...
class  pcl::TimeTrigger
 timer class that invokes registered callback methods periodically. More...
class  pcl::TransformationFromCorrespondences
 Calculates a transformation based on corresponding 3D points. More...
class  pcl::VectorAverage
 Calculates the weighted average and the covariance matrix. More...
struct  pcl::Correspondence
 Correspondence represents a match between two entities (e.g., points, descriptors, etc). More...
struct  pcl::PointXYZ
 A point structure representing Euclidean xyz coordinates. More...
struct  pcl::PointXYZI
 A point structure representing Euclidean xyz coordinates, and the intensity value. More...
struct  pcl::_PointXYZRGBA
 A point structure representing Euclidean xyz coordinates, and the RGBA color. More...
struct  pcl::PointXYZRGB
 A point structure representing Euclidean xyz coordinates, and the RGB color. More...
struct  pcl::PointXY
 A 2D point structure representing Euclidean xy coordinates. More...
struct  pcl::InterestPoint
 A point structure representing an interest point with Euclidean xyz coordinates, and an interest value. More...
struct  pcl::Normal
 A point structure representing normal coordinates and the surface curvature estimate. More...
struct  pcl::PointNormal
 A point structure representing Euclidean xyz coordinates, together with normal coordinates and the surface curvature estimate. More...
struct  pcl::_PointXYZRGBNormal
 A point structure representing Euclidean xyz coordinates, and the RGB color, together with normal coordinates and the surface curvature estimate. More...
struct  pcl::PointXYZINormal
 A point structure representing Euclidean xyz coordinates, intensity, together with normal coordinates and the surface curvature estimate. More...
struct  pcl::PointWithRange
 A point structure representing Euclidean xyz coordinates, padded with an extra range float. More...
struct  pcl::PointWithViewpoint
 A point structure representing Euclidean xyz coordinates together with the viewpoint from which it was seen. More...
struct  pcl::MomentInvariants
 A point structure representing the three moment invariants. More...
struct  pcl::PrincipalRadiiRSD
 A point structure representing the minimum and maximum surface radii (in meters) computed using RSD. More...
struct  pcl::Boundary
 A point structure representing a description of whether a point is lying on a surface boundary or not. More...
struct  pcl::PrincipalCurvatures
 A point structure representing the principal curvatures and their magnitudes. More...
struct  pcl::PFHSignature125
 A point structure representing the Point Feature Histogram (PFH). More...
struct  pcl::PFHRGBSignature250
 A point structure representing the Point Feature Histogram with colors (PFHRGB). More...
struct  pcl::PPFSignature
 A point structure for storing the Point Pair Feature (PPF) values. More...
struct  pcl::PPFRGBSignature
 A point structure for storing the Point Pair Color Feature (PPFRGB) values. More...
struct  pcl::NormalBasedSignature12
 A point structure representing the Normal Based Signature for a feature matrix of 4-by-3. More...
struct  pcl::SHOT
 A point structure representing the generic Signature of Histograms of OrienTations (SHOT). More...
struct  pcl::FPFHSignature33
 A point structure representing the Signature of Histograms of OrienTations (SHOT). More...
struct  pcl::VFHSignature308
 A point structure representing the Viewpoint Feature Histogram (VFH). More...
struct  pcl::Narf36
 A point structure representing the Narf descriptor. More...
struct  pcl::BorderDescription
 A structure to store if a point in a range image lies on a border between an obstacle and the background. More...
struct  pcl::IntensityGradient
 A point structure representing the intensity gradient of an XYZI point cloud. More...
struct  pcl::Histogram
 A point structure representing an N-D histogram. More...
struct  pcl::PointWithScale
 A point structure representing a 3-D position and scale. More...
struct  pcl::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...

Files

file  angles.h
 

Define standard C methods to do angle calculations.


file  centroid.h
 

Define methods for centroid estimation and covariance matrix calculus.


file  common.h
 

Define standard C methods and C++ classes that are common to all methods.


file  distances.h
 

Define standard C methods to do distance calculations.


file  file_io.h
 

Define some helper functions for reading and writing files.


file  geometry.h
 

Defines some geometrical functions and utility functions.


file  intersections.h
 

Define line with line intersection functions.


file  norms.h
 

Define standard C methods to calculate different norms.


file  time.h
 

Define methods for measuring time spent in code blocks.


file  point_types.h
 

Defines all the PCL implemented PointT point type structures.


Typedefs

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.

Enumerations

enum  pcl::NormType {
  pcl::L1, pcl::L2_SQR, pcl::L2, pcl::LINF,
  pcl::JM, pcl::B, pcl::SUBLINEAR, pcl::CS,
  pcl::DIV, pcl::PF, pcl::K, pcl::KL,
  pcl::HIK
}
 Enum that defines all the types of norms available. More...
enum  pcl::BorderTrait {
  pcl::BORDER_TRAIT__OBSTACLE_BORDER, pcl::BORDER_TRAIT__SHADOW_BORDER, pcl::BORDER_TRAIT__VEIL_POINT, pcl::BORDER_TRAIT__SHADOW_BORDER_TOP,
  pcl::BORDER_TRAIT__SHADOW_BORDER_RIGHT, pcl::BORDER_TRAIT__SHADOW_BORDER_BOTTOM, pcl::BORDER_TRAIT__SHADOW_BORDER_LEFT, pcl::BORDER_TRAIT__OBSTACLE_BORDER_TOP,
  pcl::BORDER_TRAIT__OBSTACLE_BORDER_RIGHT, pcl::BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM, pcl::BORDER_TRAIT__OBSTACLE_BORDER_LEFT, pcl::BORDER_TRAIT__VEIL_POINT_TOP,
  pcl::BORDER_TRAIT__VEIL_POINT_RIGHT, pcl::BORDER_TRAIT__VEIL_POINT_BOTTOM, pcl::BORDER_TRAIT__VEIL_POINT_LEFT
}
 Specification of the fields for BorderDescription::traits. More...

Functions

float pcl::rad2deg (float alpha)
 Convert an angle from radians to degrees.
float pcl::deg2rad (float alpha)
 Convert an angle from degrees to radians.
double pcl::rad2deg (double alpha)
 Convert an angle from radians to degrees.
double pcl::deg2rad (double alpha)
 Convert an angle from degrees to radians.
template<typename real >
real pcl::normAngle (real alpha)
 Normalize an angle to (-PI, PI].
template<typename PointT >
void pcl::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 >
void pcl::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 >
void pcl::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 PointT >
void pcl::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.
template<typename PointT >
void pcl::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.
template<typename PointT >
void pcl::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.
template<typename PointT >
void pcl::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.
template<typename PointT >
void pcl::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.
template<typename PointT >
void pcl::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.
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.
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.
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.
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.
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.
template<typename PointT >
void pcl::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 pcl::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 pcl::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.
double pcl::getAngle3D (const Eigen::Vector4f &v1, const Eigen::Vector4f &v2)
 Compute the smallest angle between two vectors in the [ 0, PI ) interval in 3D.
void pcl::getMeanStd (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 pcl::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.
template<typename PointT >
void pcl::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 pcl::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 >
void pcl::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 pcl::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 pcl::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 pcl::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 >
double pcl::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.
template<typename PointT >
void pcl::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 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.
PCL_EXPORTS 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.
PCL_EXPORTS 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.
double pcl::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 pcl::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 PointT >
double pcl::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 pcl::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 pcl::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 pcl::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 pcl::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 pcl::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 pcl::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 pcl::getEulerAngles (const Eigen::Affine3f &t, float &roll, float &pitch, float &yaw)
 Extract the Euler angles (XYZ-convention) from the given transformation.
void pcl::getTranslationAndEulerAngles (const Eigen::Affine3f &t, float &x, float &y, float &z, float &roll, float &pitch, float &yaw)
 Extract x,y,z and the Euler angles (XYZ-convention) from the given transformation.
void pcl::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 pcl::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)
template<typename Derived >
void pcl::saveBinary (const Eigen::MatrixBase< Derived > &matrix, std::ostream &file)
 Write a matrix to an output stream.
template<typename Derived >
void pcl::loadBinary (Eigen::MatrixBase< Derived > &matrix, std::istream &file)
 Read a matrix from an input stream.
PCL_EXPORTS 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.
PCL_EXPORTS 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.
template<typename FloatVectorT >
float pcl::selectNorm (FloatVectorT A, FloatVectorT B, int dim, NormType norm_type)
 Method that calculates any norm type available, based on the norm_type variable.
template<typename FloatVectorT >
float pcl::L1_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the L1 norm of the vector between two points.
template<typename FloatVectorT >
float pcl::L2_Norm_SQR (FloatVectorT A, FloatVectorT B, int dim)
 Compute the squared L2 norm of the vector between two points.
template<typename FloatVectorT >
float pcl::L2_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the L2 norm of the vector between two points.
template<typename FloatVectorT >
float pcl::Linf_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the L-infinity norm of the vector between two points.
template<typename FloatVectorT >
float pcl::JM_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the JM norm of the vector between two points.
template<typename FloatVectorT >
float pcl::B_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the B norm of the vector between two points.
template<typename FloatVectorT >
float pcl::Sublinear_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the sublinear norm of the vector between two points.
template<typename FloatVectorT >
float pcl::CS_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the CS norm of the vector between two points.
template<typename FloatVectorT >
float pcl::Div_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the div norm of the vector between two points.
template<typename FloatVectorT >
float pcl::PF_Norm (FloatVectorT A, FloatVectorT B, int dim, float P1, float P2)
 Compute the PF norm of the vector between two points.
template<typename FloatVectorT >
float pcl::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 pcl::KL_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the KL between two discrete probability density functions.
template<typename FloatVectorT >
float pcl::HIK_Norm (FloatVectorT A, FloatVectorT B, int dim)
 Compute the HIK norm of the vector between two points.
bool pcl::isBetterCorrespondence (const PointCorrespondence &pc1, const PointCorrespondence &pc2)
 Comparator to enable us to sort a vector of PointCorrespondences according to their scores using std::sort(begin(), end(), isBetterCorrespondence);.
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.
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.
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.
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.
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)
 Apply a rigid transform defined by a 3D offset and a quaternion.
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)
 Transform a point cloud and rotate its normals using an Eigen transform.
template<typename PointT >
PointT pcl::transformPoint (const PointT &point, const Eigen::Affine3f &transform)
 Transform a point with members x,y,z.

Typedef Documentation

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 146 of file point_types.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 158 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.


Function Documentation

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 133 of file norms.hpp.

template<typename PointT >
void 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:
cloudthe input point cloud
centroidthe output centroid

Definition at line 46 of file centroid.hpp.

template<typename PointT >
void 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:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe output centroid

Definition at line 84 of file centroid.hpp.

template<typename PointT >
void 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:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe output centroid

Definition at line 123 of file centroid.hpp.

template<typename PointT >
void 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:
cloudthe input point cloud
centroidthe centroid of the set of points in the cloud
covariance_matrixthe resultant 3x3 covariance matrix

Definition at line 131 of file centroid.hpp.

template<typename PointT >
void 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:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe centroid of the set of points in the cloud
covariance_matrixthe resultant 3x3 covariance matrix

Definition at line 201 of file centroid.hpp.

template<typename PointT >
void 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:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe centroid of the set of points in the cloud
covariance_matrixthe resultant 3x3 covariance matrix

Definition at line 262 of file centroid.hpp.

template<typename PointT >
void 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.

Parameters:
cloudthe input point cloud
centroidthe centroid of the set of points in the cloud
covariance_matrixthe resultant 3x3 covariance matrix

Definition at line 191 of file centroid.hpp.

template<typename PointT >
void 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.

Parameters:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe centroid of the set of points in the cloud
covariance_matrixthe resultant 3x3 covariance matrix

Definition at line 272 of file centroid.hpp.

template<typename PointT >
void 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.

Parameters:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
centroidthe centroid of the set of points in the cloud
covariance_matrixthe resultant 3x3 covariance matrix

Definition at line 283 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 381 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 402 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 424 of file centroid.hpp.

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 162 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 51 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 61 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 294 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 307 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 334 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 352 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 371 of file centroid.hpp.

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 176 of file norms.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 >
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.

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:
tthe input transformation matrix
rollthe resulting roll angle
pitchthe resulting pitch angle
yawthe resulting yaw angle
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]pminthe 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 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]pminthe 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 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.

PCL_EXPORTS 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
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.

PCL_EXPORTS 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
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::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::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:
xthe input x translation
ythe input y translation
zthe input z translation
rollthe input roll angle
pitchthe input pitch angle
yawthe input yaw angle
tthe resulting transformation matrix

Definition at line 107 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:
xthe input x translation
ythe input y translation
zthe input z translation
rollthe input roll angle
pitchthe input pitch angle
yawthe input yaw angle
Returns:
the resulting transformation matrix

Definition at line 117 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:
y_directionthe y direction
z_axisthe z-axis
originthe origin
transformationthe resultant transformation matrix

Definition at line 89 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:
x_axisthe x-axis
y_directionthe y direction
transformationthe resultant 3D rotation

Definition at line 58 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:
x_axisthe x-axis
y_directionthe y direction
Returns:
the resulting 3D rotation

Definition at line 70 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:
z_axisthe z-axis
y_directionthe y direction
transformationthe resultant 3D rotation

Definition at line 39 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:
z_axisthe z-axis
y_directionthe y direction
Returns:
the resultant 3D rotation

Definition at line 51 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:
tthe input transformation matrix
xthe resulting x translation
ythe resulting y translation
zthe resulting z translation
rollthe resulting roll angle
pitchthe resulting pitch angle
yawthe resulting yaw angle

Definition at line 97 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 226 of file norms.hpp.

bool pcl::isBetterCorrespondence ( const PointCorrespondence &  pc1,
const PointCorrespondence &  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 97 of file point_correspondence.h.

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 121 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 201 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 212 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 81 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 104 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 91 of file norms.hpp.

PCL_EXPORTS 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
PCL_EXPORTS 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
PCL_EXPORTS 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
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 111 of file norms.hpp.

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

Read a matrix from an input stream.

Parameters:
matrixthe resulting matrix, read from the input stream
filethe input stream

Definition at line 139 of file eigen.hpp.

template<typename real >
real pcl::normAngle ( real  alpha) [inline]

Normalize an angle to (-PI, PI].

Parameters:
alphathe input angle (in radians)

Definition at line 41 of file angles.hpp.

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 190 of file norms.hpp.

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

Convert an angle from radians to degrees.

Parameters:
alphathe input angle (in radians)

Definition at line 46 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 56 of file angles.hpp.

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

Write a matrix to an output stream.

Parameters:
matrixthe matrix to output
filethe output stream

Definition at line 125 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 43 of file norms.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 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 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 150 of file norms.hpp.

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

Transform a point with members x,y,z.

Parameters:
transformationthe transformation to apply
pointthe point to transform
Returns:
the transformed point

Definition at line 286 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:
The density of the point cloud is lost, since density implies that the origin is the point of view
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:
The density of the point cloud is lost, since density implies that the origin is the point of view
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:
The density of the point cloud is lost, since density implies that the origin is the point of view
Can be used with cloud_in equal to cloud_out

Definition at line 166 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
Note:
density of the point cloud is lost, since density implies that the origin is the point of view

Definition at line 259 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:
The density of the point cloud is lost, since density implies that the origin is the point of view
Can be used with cloud_in equal to cloud_out

Definition at line 207 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
Note:
density of the point cloud is lost, since density implies that the origin is the point of view

Definition at line 273 of file transforms.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines