Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
pcl::MovingLeastSquares< PointInT, PointOutT > Class Template Reference

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

#include <mls.h>

Inheritance diagram for pcl::MovingLeastSquares< PointInT, PointOutT >:
Inheritance graph
[legend]

List of all members.

Classes

struct  MLSResult
 Data structure used to store the results of the MLS fitting. More...
class  MLSVoxelGrid
 A minimalistic implementation of a voxel grid, necessary for the point cloud upsampling. More...

Public Types

typedef boost::shared_ptr
< const MovingLeastSquares
< PointInT, PointOutT > > 
ConstPtr
typedef pcl::search::Search
< PointInT > 
KdTree
typedef pcl::search::Search
< PointInT >::Ptr 
KdTreePtr
typedef pcl::PointCloud
< pcl::Normal
NormalCloud
typedef pcl::PointCloud
< pcl::Normal >::Ptr 
NormalCloudPtr
typedef pcl::PointCloud< PointInT > PointCloudIn
typedef PointCloudIn::ConstPtr PointCloudInConstPtr
typedef PointCloudIn::Ptr PointCloudInPtr
typedef pcl::PointCloud
< PointOutT
PointCloudOut
typedef PointCloudOut::ConstPtr PointCloudOutConstPtr
typedef PointCloudOut::Ptr PointCloudOutPtr
typedef boost::shared_ptr
< MovingLeastSquares< PointInT,
PointOutT > > 
Ptr
typedef boost::function< int(int,
double, std::vector< int >
&, std::vector< float > &)> 
SearchMethod
enum  UpsamplingMethod {
  NONE, DISTINCT_CLOUD, SAMPLE_LOCAL_PLANE, RANDOM_UNIFORM_DENSITY,
  VOXEL_GRID_DILATION
}

Public Member Functions

PointIndicesPtr getCorrespondingIndices ()
 Get the set of indices with each point in output having the corresponding point in input.
int getDilationIterations ()
 Get the number of dilation steps of the voxel grid.
float getDilationVoxelSize ()
 Get the voxel size for the voxel grid.
PointCloudInConstPtr getDistinctCloud ()
 Get the distinct cloud used for the DISTINCT_CLOUD upsampling method.
int getPointDensity ()
 Get the parameter that specifies the desired number of points within the search radius.
bool getPolynomialFit ()
 Get the polynomial_fit value (true if the surface and normal are approximated using a polynomial).
int getPolynomialOrder ()
 Get the order of the polynomial to be fit.
KdTreePtr getSearchMethod ()
 Get a pointer to the search method used.
double getSearchRadius ()
 Get the sphere radius used for determining the k-nearest neighbors.
double getSqrGaussParam () const
 Get the parameter for distance based weighting of neighbors.
double getUpsamplingRadius ()
 Get the radius of the circle in the local point plane that will be sampled.
double getUpsamplingStepSize ()
 Get the step size for the local plane sampling.
 MovingLeastSquares ()
 Empty constructor.
void process (PointCloudOut &output)
 Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>
void setComputeNormals (bool compute_normals)
 Set whether the algorithm should also store the normals computed.
void setDilationIterations (int iterations)
 Set the number of dilation steps of the voxel grid.
void setDilationVoxelSize (float voxel_size)
 Set the voxel size for the voxel grid.
void setDistinctCloud (PointCloudInConstPtr distinct_cloud)
 Set the distinct cloud used for the DISTINCT_CLOUD upsampling method.
void setPointDensity (int desired_num_points_in_radius)
 Set the parameter that specifies the desired number of points within the search radius.
void setPolynomialFit (bool polynomial_fit)
 Sets whether the surface and normal are approximated using a polynomial, or only via tangent estimation.
void setPolynomialOrder (int order)
 Set the order of the polynomial to be fit.
void setSearchMethod (const KdTreePtr &tree)
 Provide a pointer to the search object.
void setSearchRadius (double radius)
 Set the sphere radius that is to be used for determining the k-nearest neighbors used for fitting.
void setSqrGaussParam (double sqr_gauss_param)
 Set the parameter used for distance based weighting of neighbors (the square of the search radius works best in general).
void setUpsamplingMethod (UpsamplingMethod method)
 Set the upsampling method to be used.
void setUpsamplingRadius (double radius)
 Set the radius of the circle in the local point plane that will be sampled.
void setUpsamplingStepSize (double step_size)
 Set the step size for the local plane sampling.
virtual ~MovingLeastSquares ()
 Empty destructor.

Protected Member Functions

void computeMLSPointNormal (int index, const std::vector< int > &nn_indices, std::vector< float > &nn_sqr_dists, PointCloudOut &projected_points, NormalCloud &projected_points_normals, PointIndices &corresponding_input_indices, MLSResult &mls_result) const
 Smooth a given point and its neighborghood using Moving Least Squares.
void copyMissingFields (const PointInT &point_in, PointOutT &point_out) const
virtual void performProcessing (PointCloudOut &output)
 Abstract surface reconstruction method.
void performUpsampling (PointCloudOut &output)
 Perform upsampling for the distinct-cloud and voxel-grid methods.
void projectPointToMLSSurface (float &u_disp, float &v_disp, Eigen::Vector3d &u_axis, Eigen::Vector3d &v_axis, Eigen::Vector3d &n_axis, Eigen::Vector3d &mean, float &curvature, Eigen::VectorXd &c_vec, int num_neighbors, PointOutT &result_point, pcl::Normal &result_normal) const
 Fits a point (sample point) given in the local plane coordinates of an input point (query point) to the MLS surface of the input point.
int searchForNeighbors (int index, std::vector< int > &indices, std::vector< float > &sqr_distances) const
 Search for the closest nearest neighbors of a given point using a radius search.

Protected Attributes

bool compute_normals_
 Parameter that specifies whether the normals should be computed for the input cloud or not.
PointIndicesPtr corresponding_input_indices_
 Collects for each point in output the corrseponding point in the input.
int desired_num_points_in_radius_
 Parameter that specifies the desired number of points within the search radius.
int dilation_iteration_num_
 Number of dilation steps for the VOXEL_GRID_DILATION upsampling method.
PointCloudInConstPtr distinct_cloud_
 The distinct point cloud that will be projected to the MLS surface.
std::vector< MLSResultmls_results_
 Stores the MLS result for each point in the input cloud.
NormalCloudPtr normals_
 The point cloud that will hold the estimated normals, if set.
int nr_coeff_
 Number of coefficients, to be computed from the requested order.
int order_
 The order of the polynomial to be fit.
bool polynomial_fit_
SearchMethod search_method_
 The search method template for indices.
double search_radius_
 The nearest neighbors search radius for each point.
double sqr_gauss_param_
 Parameter for distance based weighting of neighbors (search_radius_ * search_radius_ works fine)
KdTreePtr tree_
 A pointer to the spatial search object.
UpsamplingMethod upsample_method_
 Parameter that specifies the upsampling method to be used.
double upsampling_radius_
 Radius of the circle in the local point plane that will be sampled.
double upsampling_step_
 Step size for the local plane sampling.
float voxel_size_
 Voxel size for the VOXEL_GRID_DILATION upsampling method.

Private Member Functions

std::string getClassName () const
 Abstract class get name method.

Private Attributes

boost::mt19937 rng_alg_
 Boost-based random number generator algorithm.
boost::shared_ptr
< boost::variate_generator
< boost::mt19937
&, boost::uniform_real< float > > > 
rng_uniform_distribution_
 Random number generator using an uniform distribution of floats.

Detailed Description

template<typename PointInT, typename PointOutT>
class pcl::MovingLeastSquares< PointInT, PointOutT >

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.

Author:
Zoltan Csaba Marton, Radu B. Rusu, Alexandru E. Ichim, Suat Gedikli

Definition at line 65 of file mls.h.


Member Typedef Documentation

template<typename PointInT, typename PointOutT>
typedef boost::shared_ptr<const MovingLeastSquares<PointInT, PointOutT> > pcl::MovingLeastSquares< PointInT, PointOutT >::ConstPtr

Reimplemented from pcl::CloudSurfaceProcessing< PointInT, PointOutT >.

Definition at line 69 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef pcl::search::Search<PointInT> pcl::MovingLeastSquares< PointInT, PointOutT >::KdTree

Definition at line 77 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef pcl::search::Search<PointInT>::Ptr pcl::MovingLeastSquares< PointInT, PointOutT >::KdTreePtr

Definition at line 78 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef pcl::PointCloud<pcl::Normal> pcl::MovingLeastSquares< PointInT, PointOutT >::NormalCloud

Definition at line 79 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef pcl::PointCloud<pcl::Normal>::Ptr pcl::MovingLeastSquares< PointInT, PointOutT >::NormalCloudPtr

Definition at line 80 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef pcl::PointCloud<PointInT> pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudIn

Definition at line 86 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef PointCloudIn::ConstPtr pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudInConstPtr

Definition at line 88 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef PointCloudIn::Ptr pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudInPtr

Definition at line 87 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef pcl::PointCloud<PointOutT> pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudOut

Definition at line 82 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef PointCloudOut::ConstPtr pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudOutConstPtr

Definition at line 84 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef PointCloudOut::Ptr pcl::MovingLeastSquares< PointInT, PointOutT >::PointCloudOutPtr

Definition at line 83 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef boost::shared_ptr<MovingLeastSquares<PointInT, PointOutT> > pcl::MovingLeastSquares< PointInT, PointOutT >::Ptr

Reimplemented from pcl::CloudSurfaceProcessing< PointInT, PointOutT >.

Definition at line 68 of file mls.h.

template<typename PointInT, typename PointOutT>
typedef boost::function<int (int, double, std::vector<int> &, std::vector<float> &)> pcl::MovingLeastSquares< PointInT, PointOutT >::SearchMethod

Definition at line 90 of file mls.h.


Member Enumeration Documentation

template<typename PointInT, typename PointOutT>
enum pcl::MovingLeastSquares::UpsamplingMethod
Enumerator:
NONE 
DISTINCT_CLOUD 
SAMPLE_LOCAL_PLANE 
RANDOM_UNIFORM_DENSITY 
VOXEL_GRID_DILATION 

Definition at line 92 of file mls.h.


Constructor & Destructor Documentation

template<typename PointInT, typename PointOutT>
pcl::MovingLeastSquares< PointInT, PointOutT >::MovingLeastSquares ( ) [inline]

Empty constructor.

Definition at line 95 of file mls.h.

template<typename PointInT, typename PointOutT>
virtual pcl::MovingLeastSquares< PointInT, PointOutT >::~MovingLeastSquares ( ) [inline, virtual]

Empty destructor.

Definition at line 119 of file mls.h.


Member Function Documentation

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal ( int  index,
const std::vector< int > &  nn_indices,
std::vector< float > &  nn_sqr_dists,
PointCloudOut projected_points,
NormalCloud projected_points_normals,
PointIndices corresponding_input_indices,
MLSResult mls_result 
) const [protected]

Smooth a given point and its neighborghood using Moving Least Squares.

Parameters:
[in]indexthe inex of the query point in the input cloud
[in]nn_indicesthe set of nearest neighbors indices for pt
[in]nn_sqr_diststhe set of nearest neighbors squared distances for pt
[out]projected_pointsthe set of points projected points around the query point (in the case of upsampling method NONE, only the query point projected to its own fitted surface will be returned, in the case of the other upsampling methods, multiple points will be returned)
[out]projected_points_normalsthe normals corresponding to the projected points
[out]corresponding_input_indicesthe set of indices with each point in output having the corresponding point in input
[out]mls_resultstores the MLS result for each point in the input cloud (used only in the case of VOXEL_GRID_DILATION or DISTINCT_CLOUD upsampling)

Definition at line 159 of file mls.hpp.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::copyMissingFields ( const PointInT &  point_in,
PointOutT point_out 
) const [protected]

Definition at line 752 of file mls.hpp.

template<typename PointInT, typename PointOutT>
std::string pcl::MovingLeastSquares< PointInT, PointOutT >::getClassName ( ) const [inline, private]

Abstract class get name method.

Definition at line 523 of file mls.h.

template<typename PointInT, typename PointOutT>
PointIndicesPtr pcl::MovingLeastSquares< PointInT, PointOutT >::getCorrespondingIndices ( ) [inline]

Get the set of indices with each point in output having the corresponding point in input.

Definition at line 295 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::getDilationIterations ( ) [inline]

Get the number of dilation steps of the voxel grid.

Note:
Used only in the VOXEL_GRID_DILATION upsampling method

Definition at line 283 of file mls.h.

template<typename PointInT, typename PointOutT>
float pcl::MovingLeastSquares< PointInT, PointOutT >::getDilationVoxelSize ( ) [inline]

Get the voxel size for the voxel grid.

Note:
Used only in the VOXEL_GRID_DILATION upsampling method

Definition at line 270 of file mls.h.

template<typename PointInT, typename PointOutT>
PointCloudInConstPtr pcl::MovingLeastSquares< PointInT, PointOutT >::getDistinctCloud ( ) [inline]

Get the distinct cloud used for the DISTINCT_CLOUD upsampling method.

Definition at line 213 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::getPointDensity ( ) [inline]

Get the parameter that specifies the desired number of points within the search radius.

Note:
Used only in the case of RANDOM_UNIFORM_DENSITY upsampling

Definition at line 256 of file mls.h.

template<typename PointInT, typename PointOutT>
bool pcl::MovingLeastSquares< PointInT, PointOutT >::getPolynomialFit ( ) [inline]

Get the polynomial_fit value (true if the surface and normal are approximated using a polynomial).

Definition at line 162 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::getPolynomialOrder ( ) [inline]

Get the order of the polynomial to be fit.

Definition at line 152 of file mls.h.

template<typename PointInT, typename PointOutT>
KdTreePtr pcl::MovingLeastSquares< PointInT, PointOutT >::getSearchMethod ( ) [inline]

Get a pointer to the search method used.

Definition at line 142 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::getSearchRadius ( ) [inline]

Get the sphere radius used for determining the k-nearest neighbors.

Definition at line 173 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::getSqrGaussParam ( ) const [inline]

Get the parameter for distance based weighting of neighbors.

Definition at line 184 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::getUpsamplingRadius ( ) [inline]

Get the radius of the circle in the local point plane that will be sampled.

Note:
Used only in the case of SAMPLE_LOCAL_PLANE upsampling

Definition at line 227 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::getUpsamplingStepSize ( ) [inline]

Get the step size for the local plane sampling.

Note:
Used only in the case of SAMPLE_LOCAL_PLANE upsampling

Definition at line 241 of file mls.h.

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::performProcessing ( PointCloudOut output) [protected, virtual]

Abstract surface reconstruction method.

Parameters:
[out]outputthe result of the reconstruction

Definition at line 460 of file mls.hpp.

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::performUpsampling ( PointCloudOut output) [protected]

Perform upsampling for the distinct-cloud and voxel-grid methods.

Parameters:
[out]outputthe result of the reconstruction

Definition at line 573 of file mls.hpp.

template<typename PointInT , typename PointOutT >
void pcl::MovingLeastSquares< PointInT, PointOutT >::process ( PointCloudOut output)

Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>

Parameters:
[out]outputthe resultant reconstructed surface model

Definition at line 56 of file mls.hpp.

template<typename PointInT , typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::projectPointToMLSSurface ( float &  u_disp,
float &  v_disp,
Eigen::Vector3d &  u_axis,
Eigen::Vector3d &  v_axis,
Eigen::Vector3d &  n_axis,
Eigen::Vector3d &  mean,
float &  curvature,
Eigen::VectorXd &  c_vec,
int  num_neighbors,
PointOutT result_point,
pcl::Normal result_normal 
) const [protected]

Fits a point (sample point) given in the local plane coordinates of an input point (query point) to the MLS surface of the input point.

Parameters:
[in]u_dispthe u coordinate of the sample point in the local plane of the query point
[in]v_dispthe v coordinate of the sample point in the local plane of the query point
[in]uthe axis corresponding to the u-coordinates of the local plane of the query point
[in]vthe axis corresponding to the v-coordinates of the local plane of the query point
[in]plane_normalthe normal to the local plane of the query point
[in]curvaturethe curvature of the surface at the query point
[in]query_pointthe absolute 3D position of the query point
[in]c_vecthe coefficients of the polynomial fit on the MLS surface of the query point
[in]num_neighborsthe number of neighbors of the query point in the input cloud
[out]result_pointthe absolute 3D position of the resulting projected point
[out]result_normalthe normal of the resulting projected point

Definition at line 403 of file mls.hpp.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::searchForNeighbors ( int  index,
std::vector< int > &  indices,
std::vector< float > &  sqr_distances 
) const [inline, protected]

Search for the closest nearest neighbors of a given point using a radius search.

Parameters:
[in]indexthe index of the query point
[out]indicesthe resultant vector of indices representing the k-nearest neighbors
[out]sqr_distancesthe resultant squared distances from the query point to the k-nearest neighbors

Definition at line 446 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setComputeNormals ( bool  compute_normals) [inline]

Set whether the algorithm should also store the normals computed.

Note:
This is optional, but need a proper output cloud type

Definition at line 126 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setDilationIterations ( int  iterations) [inline]

Set the number of dilation steps of the voxel grid.

Note:
Used only in the VOXEL_GRID_DILATION upsampling method
Parameters:
[in]iterationsthe number of dilation iterations

Definition at line 277 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setDilationVoxelSize ( float  voxel_size) [inline]

Set the voxel size for the voxel grid.

Note:
Used only in the VOXEL_GRID_DILATION upsampling method
Parameters:
[in]voxel_sizethe edge length of a cubic voxel in the voxel grid

Definition at line 263 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setDistinctCloud ( PointCloudInConstPtr  distinct_cloud) [inline]

Set the distinct cloud used for the DISTINCT_CLOUD upsampling method.

Definition at line 209 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setPointDensity ( int  desired_num_points_in_radius) [inline]

Set the parameter that specifies the desired number of points within the search radius.

Note:
Used only in the case of RANDOM_UNIFORM_DENSITY upsampling
Parameters:
[in]desired_num_points_in_radiusthe desired number of points in the output cloud in a sphere of radius search_radius_ around each point

Definition at line 249 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setPolynomialFit ( bool  polynomial_fit) [inline]

Sets whether the surface and normal are approximated using a polynomial, or only via tangent estimation.

Parameters:
[in]polynomial_fitset to true for polynomial fit

Definition at line 158 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setPolynomialOrder ( int  order) [inline]

Set the order of the polynomial to be fit.

Parameters:
[in]orderthe order of the polynomial

Definition at line 148 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchMethod ( const KdTreePtr tree) [inline]

Provide a pointer to the search object.

Parameters:
[in]treea pointer to the spatial search object.

Definition at line 132 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setSearchRadius ( double  radius) [inline]

Set the sphere radius that is to be used for determining the k-nearest neighbors used for fitting.

Parameters:
[in]radiusthe sphere radius that is to contain all k-nearest neighbors
Note:
Calling this method resets the squared Gaussian parameter to radius * radius !

Definition at line 169 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setSqrGaussParam ( double  sqr_gauss_param) [inline]

Set the parameter used for distance based weighting of neighbors (the square of the search radius works best in general).

Parameters:
[in]sqr_gauss_paramthe squared Gaussian parameter

Definition at line 180 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingMethod ( UpsamplingMethod  method) [inline]

Set the upsampling method to be used.

Note:
Options are: * NONE - no upsampling will be done, only the input points will be projected to their own MLS surfaces * DISTINCT_CLOUD - will project the points of the distinct cloud to the closest point on the MLS surface * SAMPLE_LOCAL_PLANE - the local plane of each input point will be sampled in a circular fashion using the upsampling_radius_ and the upsampling_step_ parameters * RANDOM_UNIFORM_DENSITY - the local plane of each input point will be sampled using an uniform random distribution such that the density of points is constant throughout the cloud - given by the desired_num_points_in_radius_ parameter * VOXEL_GRID_DILATION - the input cloud will be inserted into a voxel grid with voxels of size voxel_size_; this voxel grid will be dilated dilation_iteration_num_ times and the resulting points will be projected to the MLS surface of the closest point in the input cloud; the result is a point cloud with filled holes and a constant point density

Definition at line 205 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingRadius ( double  radius) [inline]

Set the radius of the circle in the local point plane that will be sampled.

Note:
Used only in the case of SAMPLE_LOCAL_PLANE upsampling
Parameters:
[in]radiusthe radius of the circle

Definition at line 221 of file mls.h.

template<typename PointInT, typename PointOutT>
void pcl::MovingLeastSquares< PointInT, PointOutT >::setUpsamplingStepSize ( double  step_size) [inline]

Set the step size for the local plane sampling.

Note:
Used only in the case of SAMPLE_LOCAL_PLANE upsampling
Parameters:
[in]step_sizethe step size

Definition at line 234 of file mls.h.


Member Data Documentation

template<typename PointInT, typename PointOutT>
bool pcl::MovingLeastSquares< PointInT, PointOutT >::compute_normals_ [protected]

Parameter that specifies whether the normals should be computed for the input cloud or not.

Definition at line 323 of file mls.h.

template<typename PointInT, typename PointOutT>
PointIndicesPtr pcl::MovingLeastSquares< PointInT, PointOutT >::corresponding_input_indices_ [protected]

Collects for each point in output the corrseponding point in the input.

Definition at line 438 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::desired_num_points_in_radius_ [protected]

Parameter that specifies the desired number of points within the search radius.

Note:
Used only in the case of RANDOM_UNIFORM_DENSITY upsampling

Definition at line 341 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::dilation_iteration_num_ [protected]

Number of dilation steps for the VOXEL_GRID_DILATION upsampling method.

Definition at line 432 of file mls.h.

template<typename PointInT, typename PointOutT>
PointCloudInConstPtr pcl::MovingLeastSquares< PointInT, PointOutT >::distinct_cloud_ [protected]

The distinct point cloud that will be projected to the MLS surface.

Definition at line 302 of file mls.h.

template<typename PointInT, typename PointOutT>
std::vector<MLSResult> pcl::MovingLeastSquares< PointInT, PointOutT >::mls_results_ [protected]

Stores the MLS result for each point in the input cloud.

Note:
Used only in the case of VOXEL_GRID_DILATION or DISTINCT_CLOUD upsampling

Definition at line 369 of file mls.h.

template<typename PointInT, typename PointOutT>
NormalCloudPtr pcl::MovingLeastSquares< PointInT, PointOutT >::normals_ [protected]

The point cloud that will hold the estimated normals, if set.

Definition at line 299 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::nr_coeff_ [protected]

Number of coefficients, to be computed from the requested order.

Definition at line 435 of file mls.h.

template<typename PointInT, typename PointOutT>
int pcl::MovingLeastSquares< PointInT, PointOutT >::order_ [protected]

The order of the polynomial to be fit.

Definition at line 311 of file mls.h.

template<typename PointInT, typename PointOutT>
bool pcl::MovingLeastSquares< PointInT, PointOutT >::polynomial_fit_ [protected]

True if the surface and normal be approximated using a polynomial, false if tangent estimation is sufficient.

Definition at line 314 of file mls.h.

template<typename PointInT, typename PointOutT>
boost::mt19937 pcl::MovingLeastSquares< PointInT, PointOutT >::rng_alg_ [private]

Boost-based random number generator algorithm.

Definition at line 513 of file mls.h.

template<typename PointInT, typename PointOutT>
boost::shared_ptr<boost::variate_generator<boost::mt19937&, boost::uniform_real<float> > > pcl::MovingLeastSquares< PointInT, PointOutT >::rng_uniform_distribution_ [private]

Random number generator using an uniform distribution of floats.

Note:
Used only in the case of RANDOM_UNIFORM_DENSITY upsampling

Definition at line 520 of file mls.h.

template<typename PointInT, typename PointOutT>
SearchMethod pcl::MovingLeastSquares< PointInT, PointOutT >::search_method_ [protected]

The search method template for indices.

Definition at line 305 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::search_radius_ [protected]

The nearest neighbors search radius for each point.

Definition at line 317 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::sqr_gauss_param_ [protected]

Parameter for distance based weighting of neighbors (search_radius_ * search_radius_ works fine)

Definition at line 320 of file mls.h.

template<typename PointInT, typename PointOutT>
KdTreePtr pcl::MovingLeastSquares< PointInT, PointOutT >::tree_ [protected]

A pointer to the spatial search object.

Definition at line 308 of file mls.h.

template<typename PointInT, typename PointOutT>
UpsamplingMethod pcl::MovingLeastSquares< PointInT, PointOutT >::upsample_method_ [protected]

Parameter that specifies the upsampling method to be used.

Definition at line 326 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_radius_ [protected]

Radius of the circle in the local point plane that will be sampled.

Note:
Used only in the case of SAMPLE_LOCAL_PLANE upsampling

Definition at line 331 of file mls.h.

template<typename PointInT, typename PointOutT>
double pcl::MovingLeastSquares< PointInT, PointOutT >::upsampling_step_ [protected]

Step size for the local plane sampling.

Note:
Used only in the case of SAMPLE_LOCAL_PLANE upsampling

Definition at line 336 of file mls.h.

template<typename PointInT, typename PointOutT>
float pcl::MovingLeastSquares< PointInT, PointOutT >::voxel_size_ [protected]

Voxel size for the VOXEL_GRID_DILATION upsampling method.

Definition at line 429 of file mls.h.


The documentation for this class was generated from the following files:


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:42:24