Point Cloud Library (PCL)  1.5.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions
pcl::common::Convolution< PointOperatorsType > Class Template Reference

Class Convolution Convolution is a mathematical operation on two functions f and g, producing a third function that is typically viewed as a modified version of one of the original functions. More...

#include <pcl/common/convolution.h>

List of all members.

Public Types

enum  BORDERS_POLICY { IGNORE = -1, MIRROR, DUPLICATE }
 The borders policy available. More...
typedef PointOperatorsType::PointIn PointIn
typedef
PointOperatorsType::PointOut 
PointOut
typedef pcl::PointCloud< PointInPointCloudIn
typedef PointCloudIn::Ptr PointCloudInPtr
typedef PointCloudIn::ConstPtr PointCloudInConstPtr
typedef pcl::PointCloud< PointOutPointCloudOut
typedef PointCloudOut::Ptr PointCloudOutPtr
typedef pcl::PointCloudSpring
< PointIn
PointCloudSpring

Public Member Functions

 Convolution ()
 Constructor.
void setBordersPolicy (int policy)
 Set the borders policy.
int getBordersPolicy ()
 Get the borders policy.
void setConvolveDirection (int direction)
 Set the convolving direction.
int getConvolveDirection ()
 Get the convolving direction.
void convolve (const Eigen::ArrayXf &h_kernel, const Eigen::ArrayXf &v_kernel, PointCloudOutPtr &out)
 Convolve point cloud with an horizontal kernel along rows then vertical kernel along columns : convolve separately.
void convolveRows (const Eigen::ArrayXf &kernel, PointCloudOutPtr &output)
 Convolve a float image rows by a given kernel.
void convolveCols (const Eigen::ArrayXf &kernel, PointCloudOutPtr &output)
 Convolve a float image columns by a given kernel.
void setInputCloud (const PointCloudInConstPtr &cloud)
 Provide a pointer to the input dataset.
void setInputCloud (const PointCloudInPtr &cloud)
 Provide a pointer to the input dataset.
PointOut add (const PointIn &lhs, const PointIn &rhs)
 sum 2 PointIn to a PointOut
PointOut minus (const PointIn &lhs, const PointIn &rhs)
 substract 2 PointIn to a PointOut
PointOut dot (const float &scalar, const PointIn &p)
 multiply a scalar with a PointIn to a PointOut
PointOut dot (const PointIn &p, const float &scalar)
 multiply a PointIn with a scalar to a PointOut
PointOutplus_assign (PointOut &lhs, const PointOut &rhs)
 sum and assign a PointOut to another PointOut

Detailed Description

template<typename PointOperatorsType>
class pcl::common::Convolution< PointOperatorsType >

Class Convolution Convolution is a mathematical operation on two functions f and g, producing a third function that is typically viewed as a modified version of one of the original functions.

see http://en.wikipedia.org/wiki/Convolution.

The class provides rows, column and separate convolving operations of a point cloud. Columns and separate convolution is only allowed on organised point clouds.

When convolving, computing the rows and cols elements at 1/2 kernel width distance from the borders is not defined. We allow for 3 policies:

After convolving the original point cloud is shrinked to the original size.

Author:
Nizar Sallem

Definition at line 81 of file convolution.h.


Member Typedef Documentation

template<typename PointOperatorsType >
typedef pcl::PointCloud<PointIn> pcl::common::Convolution< PointOperatorsType >::PointCloudIn

Definition at line 86 of file convolution.h.

template<typename PointOperatorsType >
typedef PointCloudIn::ConstPtr pcl::common::Convolution< PointOperatorsType >::PointCloudInConstPtr

Definition at line 88 of file convolution.h.

template<typename PointOperatorsType >
typedef PointCloudIn::Ptr pcl::common::Convolution< PointOperatorsType >::PointCloudInPtr

Definition at line 87 of file convolution.h.

template<typename PointOperatorsType >
typedef pcl::PointCloud<PointOut> pcl::common::Convolution< PointOperatorsType >::PointCloudOut

Definition at line 89 of file convolution.h.

template<typename PointOperatorsType >
typedef PointCloudOut::Ptr pcl::common::Convolution< PointOperatorsType >::PointCloudOutPtr

Definition at line 90 of file convolution.h.

template<typename PointOperatorsType >
typedef pcl::PointCloudSpring<PointIn> pcl::common::Convolution< PointOperatorsType >::PointCloudSpring

Definition at line 91 of file convolution.h.

template<typename PointOperatorsType >
typedef PointOperatorsType::PointIn pcl::common::Convolution< PointOperatorsType >::PointIn

Definition at line 84 of file convolution.h.

template<typename PointOperatorsType >
typedef PointOperatorsType::PointOut pcl::common::Convolution< PointOperatorsType >::PointOut

Definition at line 85 of file convolution.h.


Member Enumeration Documentation

template<typename PointOperatorsType >
enum pcl::common::Convolution::BORDERS_POLICY

The borders policy available.

Enumerator:
IGNORE 
MIRROR 
DUPLICATE 

Definition at line 94 of file convolution.h.


Constructor & Destructor Documentation

template<typename PointOperatorsType >
pcl::common::Convolution< PointOperatorsType >::Convolution ( ) [inline]

Constructor.

Definition at line 96 of file convolution.h.


Member Function Documentation

template<typename PointOperatorsType >
PointOut pcl::common::Convolution< PointOperatorsType >::add ( const PointIn lhs,
const PointIn rhs 
) [inline]

sum 2 PointIn to a PointOut

Definition at line 208 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::convolve ( const Eigen::ArrayXf &  h_kernel,
const Eigen::ArrayXf &  v_kernel,
PointCloudOutPtr out 
) [inline]

Convolve point cloud with an horizontal kernel along rows then vertical kernel along columns : convolve separately.

Parameters:
[in]h_kernelkernel for convolving rows
[in]v_kernelkernel for convolving columns
[out]outthe convolved cloud
Note:
if output doesn't fit in input i.e. output.rows () < input.rows () or output.cols () < input.cols () then output is resized to input sizes.

Definition at line 117 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::convolveCols ( const Eigen::ArrayXf &  kernel,
PointCloudOutPtr output 
) [inline]

Convolve a float image columns by a given kernel.

Parameters:
[in]kernelconvolution kernel
[out]outputthe convolved image
Note:
if output doesn't fit in input i.e. output.rows () < input.rows () or output.cols () < input.cols () then output is resized to input sizes.

Definition at line 169 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::convolveRows ( const Eigen::ArrayXf &  kernel,
PointCloudOutPtr output 
) [inline]

Convolve a float image rows by a given kernel.

Parameters:
[in]kernelconvolution kernel
[out]outputthe convolved cloud
Note:
if output doesn't fit in input i.e. output.rows () < input.rows () or output.cols () < input.cols () then output is resized to input sizes.

Definition at line 145 of file convolution.h.

template<typename PointOperatorsType >
PointOut pcl::common::Convolution< PointOperatorsType >::dot ( const float &  scalar,
const PointIn p 
) [inline]

multiply a scalar with a PointIn to a PointOut

Definition at line 220 of file convolution.h.

template<typename PointOperatorsType >
PointOut pcl::common::Convolution< PointOperatorsType >::dot ( const PointIn p,
const float &  scalar 
) [inline]

multiply a PointIn with a scalar to a PointOut

Definition at line 226 of file convolution.h.

template<typename PointOperatorsType >
int pcl::common::Convolution< PointOperatorsType >::getBordersPolicy ( ) [inline]

Get the borders policy.

Definition at line 101 of file convolution.h.

template<typename PointOperatorsType >
int pcl::common::Convolution< PointOperatorsType >::getConvolveDirection ( ) [inline]

Get the convolving direction.

Definition at line 106 of file convolution.h.

template<typename PointOperatorsType >
PointOut pcl::common::Convolution< PointOperatorsType >::minus ( const PointIn lhs,
const PointIn rhs 
) [inline]

substract 2 PointIn to a PointOut

Definition at line 214 of file convolution.h.

template<typename PointOperatorsType >
PointOut& pcl::common::Convolution< PointOperatorsType >::plus_assign ( PointOut lhs,
const PointOut rhs 
) [inline]

sum and assign a PointOut to another PointOut

Definition at line 232 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::setBordersPolicy ( int  policy) [inline]

Set the borders policy.

Definition at line 99 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::setConvolveDirection ( int  direction) [inline]

Set the convolving direction.

Definition at line 104 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::setInputCloud ( const PointCloudInConstPtr cloud) [inline]

Provide a pointer to the input dataset.

Parameters:
cloudthe const boost shared pointer to a PointCloud message
Remarks:
Will perform a deep copy

Definition at line 192 of file convolution.h.

template<typename PointOperatorsType >
void pcl::common::Convolution< PointOperatorsType >::setInputCloud ( const PointCloudInPtr cloud) [inline]

Provide a pointer to the input dataset.

Parameters:
cloudthe boost shared pointer to a PointCloud message
Remarks:
the point cloud will be transformed internally but then restored so you can safely use it.

Definition at line 202 of file convolution.h.


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