Point Cloud Library (PCL)  1.3.1
Public Types | Public Member Functions
pcl::BoundaryEstimation Class Reference

BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle criterion. More...

#include <pcl/features/boundary.h>

Inheritance diagram for pcl::BoundaryEstimation:
Inheritance graph
[legend]
Collaboration diagram for pcl::BoundaryEstimation:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Feature< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut
typedef pcl::PointCloud< PointNT > PointCloudN
typedef PointCloudN::Ptr PointCloudNPtr
typedef PointCloudN::ConstPtr PointCloudNConstPtr
typedef boost::shared_ptr
< FeatureFromNormals< PointInT,
PointNT, PointOutT > > 
Ptr
typedef boost::shared_ptr
< const FeatureFromNormals
< PointInT, PointNT, PointOutT > > 
ConstPtr

Public Member Functions

 BoundaryEstimation ()
 Empty constructor.
bool isBoundaryPoint (const pcl::PointCloud< PointInT > &cloud, int q_idx, const std::vector< int > &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle_threshold)
 Check whether a point is a boundary point in a planar patch of projected points given by indices.
bool isBoundaryPoint (const pcl::PointCloud< PointInT > &cloud, const PointInT &q_point, const std::vector< int > &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle_threshold)
 Check whether a point is a boundary point in a planar patch of projected points given by indices.
void setAngleThreshold (float angle)
 Set the decision boundary (angle threshold) that marks points as boundary or regular.
float getAngleThreshold ()
 Get the decision boundary (angle threshold) as set by the user.
void getCoordinateSystemOnPlane (const PointNT &p_coeff, Eigen::Vector4f &u, Eigen::Vector4f &v)
 Get a u-v-n coordinate system that lies on a plane defined by its normal.
void setInputNormals (const PointCloudNConstPtr &normals)
 Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.
PointCloudNConstPtr getInputNormals ()
 Get a pointer to the normals of the input XYZ point cloud dataset.

Detailed Description

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.

Note:
The code is stateful as we do not expect this class to be multicore parallelized. Please look at NormalEstimationOpenMP and NormalEstimationTBB for examples on how to extend this to parallel implementations.
Author:
Radu Bogdan Rusu

Member Typedef Documentation

typedef boost::shared_ptr< const FeatureFromNormals<PointInT, PointNT, PointOutT> > pcl::FeatureFromNormals::ConstPtr [inherited]

Definition at line 290 of file feature.h.

Reimplemented in pcl::SpinImageEstimation.

Definition at line 285 of file feature.h.

Reimplemented in pcl::SpinImageEstimation.

Definition at line 287 of file feature.h.

Reimplemented in pcl::SpinImageEstimation.

Definition at line 286 of file feature.h.

Reimplemented from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >.

Definition at line 71 of file boundary.h.

typedef boost::shared_ptr< FeatureFromNormals<PointInT, PointNT, PointOutT> > pcl::FeatureFromNormals::Ptr [inherited]

Definition at line 289 of file feature.h.


Constructor & Destructor Documentation

pcl::BoundaryEstimation::BoundaryEstimation ( ) [inline]

Empty constructor.

Definition at line 75 of file boundary.h.


Member Function Documentation

float pcl::BoundaryEstimation::getAngleThreshold ( ) [inline]

Get the decision boundary (angle threshold) as set by the user.

Definition at line 121 of file boundary.h.

void pcl::BoundaryEstimation::getCoordinateSystemOnPlane ( const PointNT &  p_coeff,
Eigen::Vector4f &  u,
Eigen::Vector4f &  v 
) [inline]

Get a u-v-n coordinate system that lies on a plane defined by its normal.

Parameters:
[in]p_coeffthe plane coefficients (containing the plane normal)
[out]uthe resultant u direction
[out]vthe resultant v direction

Definition at line 132 of file boundary.h.

PointCloudNConstPtr pcl::FeatureFromNormals::getInputNormals ( ) [inline, inherited]

Get a pointer to the normals of the input XYZ point cloud dataset.

Definition at line 312 of file feature.h.

bool pcl::BoundaryEstimation::isBoundaryPoint ( const pcl::PointCloud< PointInT > &  cloud,
int  q_idx,
const std::vector< int > &  indices,
const Eigen::Vector4f &  u,
const Eigen::Vector4f &  v,
const float  angle_threshold 
)

Check whether a point is a boundary point in a planar patch of projected points given by indices.

Note:
A coordinate system u-v-n must be computed a-priori using getCoordinateSystemOnPlane
Parameters:
[in]clouda pointer to the input point cloud
[in]q_idxthe index of the query point in cloud
[in]indicesthe estimated point neighbors of the query point
[in]uthe u direction
[in]vthe v direction
[in]angle_thresholdthe threshold angle (default $\pi / 2.0$)

Definition at line 48 of file boundary.hpp.

bool pcl::BoundaryEstimation::isBoundaryPoint ( const pcl::PointCloud< PointInT > &  cloud,
const PointInT &  q_point,
const std::vector< int > &  indices,
const Eigen::Vector4f &  u,
const Eigen::Vector4f &  v,
const float  angle_threshold 
)

Check whether a point is a boundary point in a planar patch of projected points given by indices.

Note:
A coordinate system u-v-n must be computed a-priori using getCoordinateSystemOnPlane
Parameters:
[in]clouda pointer to the input point cloud
[in]q_pointa pointer to the querry point
[in]indicesthe estimated point neighbors of the query point
[in]uthe u direction
[in]vthe v direction
[in]angle_thresholdthe threshold angle (default $\pi / 2.0$)

Definition at line 59 of file boundary.hpp.

void pcl::BoundaryEstimation::setAngleThreshold ( float  angle) [inline]

Set the decision boundary (angle threshold) that marks points as boundary or regular.

(default $\pi / 2.0$)

Parameters:
[in]anglethe angle threshold

Definition at line 114 of file boundary.h.

void pcl::FeatureFromNormals::setInputNormals ( const PointCloudNConstPtr normals) [inline, inherited]

Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.

In case of search surface is set to be different from the input cloud, normals should correspond to the search surface, not the input cloud!

Parameters:
normalsthe const boost shared pointer to a PointCloud of normals. By convention, L2 norm of each normal should be 1.

Definition at line 308 of file feature.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines