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

SampleConsensusModelParallelLine defines a model for 3D line segmentation using additional angular constraints. More...

#include <pcl/sample_consensus/sac_model_parallel_line.h>

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

List of all members.

Public Types

typedef
SampleConsensusModelLine
< PointT >::PointCloud 
PointCloud
typedef
SampleConsensusModelLine
< PointT >::PointCloudPtr 
PointCloudPtr
typedef
SampleConsensusModelLine
< PointT >::PointCloudConstPtr 
PointCloudConstPtr
typedef boost::shared_ptr
< SampleConsensusModelParallelLine
Ptr

Public Member Functions

 SampleConsensusModelParallelLine (const PointCloudConstPtr &cloud)
 Constructor for base SampleConsensusModelParallelLine.
 SampleConsensusModelParallelLine (const PointCloudConstPtr &cloud, const std::vector< int > &indices)
 Constructor for base SampleConsensusModelParallelLine.
void setAxis (const Eigen::Vector3f &ax)
 Set the axis along which we need to search for a plane perpendicular to.
Eigen::Vector3f getAxis ()
 Get the axis along which we need to search for a plane perpendicular to.
void setEpsAngle (const double ea)
 Set the angle epsilon (delta) threshold.
double getEpsAngle ()
 Get the angle epsilon (delta) threshold.
void selectWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold, std::vector< int > &inliers)
 Select all the points which respect the given model coefficients as inliers.
virtual int countWithinDistance (const Eigen::VectorXf &model_coefficients, const double threshold)
 Count all the points which respect the given model coefficients as inliers.
void getDistancesToModel (const Eigen::VectorXf &model_coefficients, std::vector< double > &distances)
 Compute all squared distances from the cloud data to a given line model.
pcl::SacModel getModelType () const
 Return an unique id for this model (SACMODEL_PARALLEL_LINE).
void getSamples (int &iterations, std::vector< int > &samples)
 Get 2 random points as data samples and return them as point indices.
bool computeModelCoefficients (const std::vector< int > &samples, Eigen::VectorXf &model_coefficients)
 Check whether the given index samples can form a valid line model, compute the model coefficients from these samples and store them internally in model_coefficients_.
void optimizeModelCoefficients (const std::vector< int > &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients)
 Recompute the line coefficients using the given inlier set and return them to the user.
void projectPoints (const std::vector< int > &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields=true)
 Create a new point cloud with inliers projected onto the line model.
bool doSamplesVerifyModel (const std::set< int > &indices, const Eigen::VectorXf &model_coefficients, const double threshold)
 Verify whether a subset of indices verifies the given line model coefficients.

Detailed Description

SampleConsensusModelParallelLine defines a model for 3D line segmentation using additional angular constraints.

The model coefficients are defined as:

Author:
Radu Bogdan Rusu

Member Typedef Documentation

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 66 of file sac_model_parallel_line.h.

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 68 of file sac_model_parallel_line.h.

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 67 of file sac_model_parallel_line.h.

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 70 of file sac_model_parallel_line.h.


Constructor & Destructor Documentation

pcl::SampleConsensusModelParallelLine::SampleConsensusModelParallelLine ( const PointCloudConstPtr cloud) [inline]

Constructor for base SampleConsensusModelParallelLine.

Parameters:
[in]cloudthe input point cloud dataset

Definition at line 75 of file sac_model_parallel_line.h.

pcl::SampleConsensusModelParallelLine::SampleConsensusModelParallelLine ( const PointCloudConstPtr cloud,
const std::vector< int > &  indices 
) [inline]

Constructor for base SampleConsensusModelParallelLine.

Parameters:
[in]cloudthe input point cloud dataset
[in]indicesa vector of point indices to be used from cloud

Definition at line 85 of file sac_model_parallel_line.h.


Member Function Documentation

bool pcl::SampleConsensusModelLine::computeModelCoefficients ( const std::vector< int > &  samples,
Eigen::VectorXf &  model_coefficients 
) [inherited]

Check whether the given index samples can form a valid line model, compute the model coefficients from these samples and store them internally in model_coefficients_.

The line coefficients are represented by a point and a line direction

Parameters:
[in]samplesthe point indices found as possible good candidates for creating a valid model
[out]model_coefficientsthe resultant model coefficients
int pcl::SampleConsensusModelParallelLine::countWithinDistance ( const Eigen::VectorXf &  model_coefficients,
const double  threshold 
) [virtual]

Count all the points which respect the given model coefficients as inliers.

Parameters:
[in]model_coefficientsthe coefficients of a model that we need to compute distances to
[in]thresholdmaximum admissible distance threshold for determining the inliers from the outliers
Returns:
the resultant number of inliers

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 60 of file sac_model_parallel_line.hpp.

bool pcl::SampleConsensusModelLine::doSamplesVerifyModel ( const std::set< int > &  indices,
const Eigen::VectorXf &  model_coefficients,
const double  threshold 
) [inherited]

Verify whether a subset of indices verifies the given line model coefficients.

Parameters:
[in]indicesthe data indices that need to be tested against the line model
[in]model_coefficientsthe line model coefficients
[in]thresholda maximum admissible distance threshold for determining the inliers from the outliers
Eigen::Vector3f pcl::SampleConsensusModelParallelLine::getAxis ( ) [inline]

Get the axis along which we need to search for a plane perpendicular to.

Definition at line 99 of file sac_model_parallel_line.h.

void pcl::SampleConsensusModelParallelLine::getDistancesToModel ( const Eigen::VectorXf &  model_coefficients,
std::vector< double > &  distances 
)

Compute all squared distances from the cloud data to a given line model.

Parameters:
[in]model_coefficientsthe coefficients of a line model that we need to compute distances to
[out]distancesthe resultant estimated squared distances

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 72 of file sac_model_parallel_line.hpp.

double pcl::SampleConsensusModelParallelLine::getEpsAngle ( ) [inline]

Get the angle epsilon (delta) threshold.

Definition at line 108 of file sac_model_parallel_line.h.

pcl::SacModel pcl::SampleConsensusModelParallelLine::getModelType ( ) const [inline]

Return an unique id for this model (SACMODEL_PARALLEL_LINE).

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 140 of file sac_model_parallel_line.h.

void pcl::SampleConsensusModelLine::getSamples ( int &  iterations,
std::vector< int > &  samples 
) [inherited]

Get 2 random points as data samples and return them as point indices.

Parameters:
[out]iterationsthe internal number of iterations used by SAC methods
[out]samplesthe resultant model samples
Note:
assumes unique points!
void pcl::SampleConsensusModelLine::optimizeModelCoefficients ( const std::vector< int > &  inliers,
const Eigen::VectorXf &  model_coefficients,
Eigen::VectorXf &  optimized_coefficients 
) [inherited]

Recompute the line coefficients using the given inlier set and return them to the user.

Note:
: these are the coefficients of the line model after refinement (eg. after SVD)
Parameters:
[in]inliersthe data inliers found as supporting the model
[in]model_coefficientsthe initial guess for the model coefficients
[out]optimized_coefficientsthe resultant recomputed coefficients after optimization
void pcl::SampleConsensusModelLine::projectPoints ( const std::vector< int > &  inliers,
const Eigen::VectorXf &  model_coefficients,
PointCloud projected_points,
bool  copy_data_fields = true 
) [inherited]

Create a new point cloud with inliers projected onto the line model.

Parameters:
[in]inliersthe data inliers that we want to project on the line model
[in]model_coefficientsthe *normalized* coefficients of a line model
[out]projected_pointsthe resultant projected points
[in]copy_data_fieldsset to true if we need to copy the other data fields
void pcl::SampleConsensusModelParallelLine::selectWithinDistance ( const Eigen::VectorXf &  model_coefficients,
const double  threshold,
std::vector< int > &  inliers 
)

Select all the points which respect the given model coefficients as inliers.

Parameters:
[in]model_coefficientsthe coefficients of a line model that we need to compute distances to
[in]thresholda maximum admissible distance threshold for determining the inliers from the outliers
[out]inliersthe resultant model inliers

Reimplemented from pcl::SampleConsensusModelLine< PointT >.

Definition at line 45 of file sac_model_parallel_line.hpp.

void pcl::SampleConsensusModelParallelLine::setAxis ( const Eigen::Vector3f &  ax) [inline]

Set the axis along which we need to search for a plane perpendicular to.

Parameters:
[in]axthe axis along which we need to search for a plane perpendicular to

Definition at line 95 of file sac_model_parallel_line.h.

void pcl::SampleConsensusModelParallelLine::setEpsAngle ( const double  ea) [inline]

Set the angle epsilon (delta) threshold.

Parameters:
[in]eathe maximum allowed difference between the plane normal and the given axis.

Definition at line 105 of file sac_model_parallel_line.h.


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