Public Types | Public Member Functions | Protected Member Functions

pcl::IntegralImageNormalEstimation< PointInT, PointOutT > Class Template Reference

Surface normal estimation on dense data using integral images. More...

#include <pcl/features/integral_image_normal.h>

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

List of all members.

Public Types

enum  NormalEstimationMethod { COVARIANCE_MATRIX, AVERAGE_3D_GRADIENT, AVERAGE_DEPTH_CHANGE }
typedef Feature< PointInT,
PointOutT >::PointCloudIn 
PointCloudIn
typedef Feature< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut

Public Member Functions

 IntegralImageNormalEstimation ()
 Constructor.
virtual ~IntegralImageNormalEstimation ()
 Destructor.
void setRectSize (const int width, const int height)
 Set the regions size which is considered for normal estimation.
void computePointNormal (const int pos_x, const int pos_y, PointOutT &normal)
 Computes the normal at the specified position.
void setMaxDepthChangeFactor (float max_depth_change_factor)
 The depth change threshold for computing object borders.
void setNormalSmoothingSize (float normal_smoothing_size)
 Set the normal smoothing size.
void setNormalEstimationMethod (NormalEstimationMethod normal_estimation_method)
 Set the normal estimation method.
void setDepthDependentSmoothing (bool use_depth_dependent_smoothing)
 Set whether to use depth depending smoothing or not.
virtual void setInputCloud (const typename PointCloudIn::ConstPtr &cloud)
 Provide a pointer to the input dataset (overwrites the PCLBase::setInputCloud method).

Protected Member Functions

void computeFeature (PointCloudOut &output)
 Computes the normal for the complete cloud.
void initData ()
 Initialize the data structures, based on the normal estimation method chosen.

Detailed Description

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

Surface normal estimation on dense data using integral images.

Author:
Stefan Holzer

Definition at line 53 of file integral_image_normal.h.


Member Typedef Documentation

template<typename PointInT , typename PointOutT >
typedef Feature<PointInT, PointOutT>::PointCloudIn pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::PointCloudIn

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

Definition at line 69 of file integral_image_normal.h.

template<typename PointInT , typename PointOutT >
typedef Feature<PointInT, PointOutT>::PointCloudOut pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::PointCloudOut

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

Definition at line 70 of file integral_image_normal.h.


Member Enumeration Documentation

template<typename PointInT , typename PointOutT >
enum pcl::IntegralImageNormalEstimation::NormalEstimationMethod
Enumerator:
COVARIANCE_MATRIX 
AVERAGE_3D_GRADIENT 
AVERAGE_DEPTH_CHANGE 

Definition at line 62 of file integral_image_normal.h.


Constructor & Destructor Documentation

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

Constructor.

Definition at line 73 of file integral_image_normal.h.

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

Destructor.

Definition at line 43 of file integral_image_normal.hpp.


Member Function Documentation

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

Computes the normal for the complete cloud.

Parameters:
output the resultant normals

Implements pcl::Feature< PointInT, PointOutT >.

Definition at line 315 of file integral_image_normal.hpp.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormal ( const int  pos_x,
const int  pos_y,
PointOutT &  normal 
)

Computes the normal at the specified position.

Parameters:
pos_x x position (pixel)
pos_y y position (pixel)
normal the output estimated normal

Definition at line 176 of file integral_image_normal.hpp.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::initData (  )  [protected]

Initialize the data structures, based on the normal estimation method chosen.

Definition at line 56 of file integral_image_normal.hpp.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setDepthDependentSmoothing ( bool  use_depth_dependent_smoothing  )  [inline]

Set whether to use depth depending smoothing or not.

Parameters:
use_depth_dependent_smoothing decides whether the smoothing is depth dependent

Definition at line 149 of file integral_image_normal.h.

template<typename PointInT , typename PointOutT >
virtual void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setInputCloud ( const typename PointCloudIn::ConstPtr cloud  )  [inline, virtual]

Provide a pointer to the input dataset (overwrites the PCLBase::setInputCloud method).

Parameters:
cloud the const boost shared pointer to a PointCloud message

Definition at line 158 of file integral_image_normal.h.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setMaxDepthChangeFactor ( float  max_depth_change_factor  )  [inline]

The depth change threshold for computing object borders.

Parameters:
max_depth_change_factor the depth change threshold for computing object borders based on depth changes

Definition at line 112 of file integral_image_normal.h.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalEstimationMethod ( NormalEstimationMethod  normal_estimation_method  )  [inline]

Set the normal estimation method.

The current implemented algorithms are:

  • COVARIANCE_MATRIX - creates 9 integral images to compute the normal for a specific point from the covariance matrix of its local neighborhood.
  • AVERAGE_3D_GRADIENT - creates 6 integral images to compute smoothed versions of horizontal and vertical 3D gradients and computes the normals using the cross-product between these two gradients.
  • AVERAGE_DEPTH_CHANGE - creates only a single integral image and computes the normals from the average depth changes.
Parameters:
normal_estimation_method the method used for normal estimation

Definition at line 140 of file integral_image_normal.h.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize ( float  normal_smoothing_size  )  [inline]

Set the normal smoothing size.

Parameters:
normal_smoothing_size factor which influences the size of the area used to smooth normals (depth dependent if useDepthDependentSmoothing is true)

Definition at line 122 of file integral_image_normal.h.

template<typename PointInT , typename PointOutT >
void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setRectSize ( const int  width,
const int  height 
)

Set the regions size which is considered for normal estimation.

Parameters:
width the width of the search rectangle
height the height of the search rectangle

Definition at line 78 of file integral_image_normal.hpp.


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