pcl::GaussianKernel Class Reference
Module common

Class GaussianKernel assembles all the method for computing, convolving, smoothing, gradients computing an image using a gaussian kernel. More...

`#include <pcl/common/gaussian.h>`

## Public Member Functions

| GaussianKernel ()
void | compute (float sigma, Eigen::VectorXf &kernel, unsigned kernel_width=MAX_KERNEL_WIDTH) const
| Computes the gaussian kernel and dervative assiociated to sigma. More...
void | compute (float sigma, Eigen::VectorXf &kernel, Eigen::VectorXf &derivative, unsigned kernel_width=MAX_KERNEL_WIDTH) const
| Computes the gaussian kernel and dervative assiociated to sigma. More...
void | convolveRows (const pcl::PointCloud< float > &input, const Eigen::VectorXf &kernel, pcl::PointCloud< float > &output) const
| Convolve a float image rows by a given kernel. More...
template<typename PointT >
void | convolveRows (const pcl::PointCloud< PointT > &input, boost::function< float(const PointT &p)> field_accessor, const Eigen::VectorXf &kernel, pcl::PointCloud< float > &output) const
| Convolve a float image rows by a given kernel. More...
void | convolveCols (const pcl::PointCloud< float > &input, const Eigen::VectorXf &kernel, pcl::PointCloud< float > &output) const
| Convolve a float image columns by a given kernel. More...
template<typename PointT >
void | convolveCols (const pcl::PointCloud< PointT > &input, boost::function< float(const PointT &p)> field_accessor, const Eigen::VectorXf &kernel, pcl::PointCloud< float > &output) const
| Convolve a float image columns by a given kernel. More...
void | convolve (const pcl::PointCloud< float > &input, const Eigen::VectorXf &horiz_kernel, const Eigen::VectorXf &vert_kernel, pcl::PointCloud< float > &output) const
| Convolve a float image in the 2 directions. More...
template<typename PointT >
void | convolve (const pcl::PointCloud< PointT > &input, boost::function< float(const PointT &p)> field_accessor, const Eigen::VectorXf &horiz_kernel, const Eigen::VectorXf &vert_kernel, pcl::PointCloud< float > &output) const
| Convolve a float image in the 2 directions. More...
void | computeGradients (const pcl::PointCloud< float > &input, const Eigen::VectorXf &gaussian_kernel, const Eigen::VectorXf &gaussian_kernel_derivative, pcl::PointCloud< float > &grad_x, pcl::PointCloud< float > &grad_y) const
| Computes float image gradients using a gaussian kernel and gaussian kernel derivative. More...
template<typename PointT >
void | computeGradients (const pcl::PointCloud< PointT > &input, boost::function< float(const PointT &p)> field_accessor, const Eigen::VectorXf &gaussian_kernel, const Eigen::VectorXf &gaussian_kernel_derivative, pcl::PointCloud< float > &grad_x, pcl::PointCloud< float > &grad_y) const
| Computes float image gradients using a gaussian kernel and gaussian kernel derivative. More...
void | smooth (const pcl::PointCloud< float > &input, const Eigen::VectorXf &gaussian_kernel, pcl::PointCloud< float > &output) const
| Smooth image using a gaussian kernel. More...
template<typename PointT >
void | smooth (const pcl::PointCloud< PointT > &input, boost::function< float(const PointT &p)> field_accessor, const Eigen::VectorXf &gaussian_kernel, pcl::PointCloud< float > &output) const
| Smooth image using a gaussian kernel. More...

## Static Public Attributes

static const unsigned | MAX_KERNEL_WIDTH = 71

## Detailed Description

Class GaussianKernel assembles all the method for computing, convolving, smoothing, gradients computing an image using a gaussian kernel.

The image is stored in point cloud elements intensity member or rgb or...

Author
  Nizar Sallem

Definition at line 57 of file gaussian.h.

## Constructor & Destructor Documentation

pcl::GaussianKernel::GaussianKernel | ( |  | ) |

inline

Definition at line 61 of file gaussian.h.

## Member Function Documentation

void pcl::GaussianKernel::compute | ( | float | sigma,
|  | Eigen::VectorXf & | kernel,
|  | unsigned | kernel_width = `MAX_KERNEL_WIDTH`
| ) |  | const

Computes the gaussian kernel and dervative assiociated to sigma.

The kernel and derivative width are adjusted according.

Parameters

  [in] | sigma |
  [out] | kernel | the computed gaussian kernel
  [in] | kernel_width | the desired kernel width upper bond

Exceptions

  pcl::KernelWidthTooSmallException |

void pcl::GaussianKernel::compute | ( | float | sigma,
|  | Eigen::VectorXf & | kernel,
|  | Eigen::VectorXf & | derivative,
|  | unsigned | kernel_width = `MAX_KERNEL_WIDTH`
| ) |  | const

Computes the gaussian kernel and dervative assiociated to sigma.

The kernel and derivative width are adjusted according.

Parameters

  [in] | sigma |
  [out] | kernel | the computed gaussian kernel
  [out] | derivative | the computed kernel derivative
  [in] | kernel_width | the desired kernel width upper bond

Exceptions

  pcl::KernelWidthTooSmallException |

void pcl::GaussianKernel::computeGradients | ( | const pcl::PointCloud< float > & | input,
|  | const Eigen::VectorXf & | gaussian_kernel,
|  | const Eigen::VectorXf & | gaussian_kernel_derivative,
|  | pcl::PointCloud< float > & | grad_x,
|  | pcl::PointCloud< float > & | grad_y
| ) |  | const

inline

Computes float image gradients using a gaussian kernel and gaussian kernel derivative.

Parameters

  [in] | input | image to compute gardients for
  [in] | gaussian_kernel | the gaussian kernel to be used
  [in] | gaussian_kernel_derivative | the associated derivative
  [out] | grad_x | gradient along X direction
  [out] | grad_y | gradient along Y direction

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 197 of file gaussian.h.

template<typename PointT >

void pcl::GaussianKernel::computeGradients | ( | const pcl::PointCloud< PointT > & | input,
|  | boost::function< float(const PointT &p)> | field_accessor,
|  | const Eigen::VectorXf & | gaussian_kernel,
|  | const Eigen::VectorXf & | gaussian_kernel_derivative,
|  | pcl::PointCloud< float > & | grad_x,
|  | pcl::PointCloud< float > & | grad_y
| ) |  | const

inline

Computes float image gradients using a gaussian kernel and gaussian kernel derivative.

Parameters

  [in] | input | image to compute gardients for
  [in] | field_accessor | a field accessor
  [in] | gaussian_kernel | the gaussian kernel to be used
  [in] | gaussian_kernel_derivative | the associated derivative
  [out] | grad_x | gradient along X direction
  [out] | grad_y | gradient along Y direction

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 219 of file gaussian.h.

void pcl::GaussianKernel::convolve | ( | const pcl::PointCloud< float > & | input,
|  | const Eigen::VectorXf & | horiz_kernel,
|  | const Eigen::VectorXf & | vert_kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

inline

Convolve a float image in the 2 directions.

Parameters

  [in] | horiz_kernel | kernel for convolving rows
  [in] | vert_kernel | kernel for convolving columns
  [in] | input | image to convolve
  [out] | output | the 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 151 of file gaussian.h.

References pcl::PointCloud< PointT >::height, and pcl::PointCloud< PointT >::width.

template<typename PointT >

void pcl::GaussianKernel::convolve | ( | const pcl::PointCloud< PointT > & | input,
|  | boost::function< float(const PointT &p)> | field_accessor,
|  | const Eigen::VectorXf & | horiz_kernel,
|  | const Eigen::VectorXf & | vert_kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

inline

Convolve a float image in the 2 directions.

Parameters

  [in] | input | image to convolve
  [in] | field_accessor | a field accessor
  [in] | horiz_kernel | kernel for convolving rows
  [in] | vert_kernel | kernel for convolving columns
  [out] | output | the 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 173 of file gaussian.h.

References pcl::PointCloud< PointT >::height, and pcl::PointCloud< PointT >::width.

void pcl::GaussianKernel::convolveCols | ( | const pcl::PointCloud< float > & | input,
|  | const Eigen::VectorXf & | kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

Convolve a float image columns by a given kernel.

Parameters

  [in] | input | the image to convolve
  [in] | kernel | convolution kernel
  [out] | output | the 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.

template<typename PointT >

void pcl::GaussianKernel::convolveCols | ( | const pcl::PointCloud< PointT > & | input,
|  | boost::function< float(const PointT &p)> | field_accessor,
|  | const Eigen::VectorXf & | kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

Convolve a float image columns by a given kernel.

Parameters

  [in] | input | the image to convolve
  [in] | field_accessor | a field accessor
  [in] | kernel | convolution kernel
  [out] | output | the 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 79 of file gaussian.hpp.

References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.

void pcl::GaussianKernel::convolveRows | ( | const pcl::PointCloud< float > & | input,
|  | const Eigen::VectorXf & | kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

Convolve a float image rows by a given kernel.

Parameters

  [in] | kernel | convolution kernel
  [in] | input | the image to convolve
  [out] | output | the 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.

template<typename PointT >

void pcl::GaussianKernel::convolveRows | ( | const pcl::PointCloud< PointT > & | input,
|  | boost::function< float(const PointT &p)> | field_accessor,
|  | const Eigen::VectorXf & | kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

Convolve a float image rows by a given kernel.

Parameters

  [in] | input | the image to convolve
  [in] | field_accessor | a field accessor
  [in] | kernel | convolution kernel
  [out] | output | the 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 46 of file gaussian.hpp.

References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.

void pcl::GaussianKernel::smooth | ( | const pcl::PointCloud< float > & | input,
|  | const Eigen::VectorXf & | gaussian_kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

inline

Smooth image using a gaussian kernel.

Parameters

  [in] | input | image
  [in] | gaussian_kernel | the gaussian kernel to be used
  [out] | output | the smoothed 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 238 of file gaussian.h.

template<typename PointT >

void pcl::GaussianKernel::smooth | ( | const pcl::PointCloud< PointT > & | input,
|  | boost::function< float(const PointT &p)> | field_accessor,
|  | const Eigen::VectorXf & | gaussian_kernel,
|  | pcl::PointCloud< float > & | output
| ) |  | const

inline

Smooth image using a gaussian kernel.

Parameters

  [in] | input | image
  [in] | field_accessor | a field accessor
  [in] | gaussian_kernel | the gaussian kernel to be used
  [out] | output | the smoothed 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 254 of file gaussian.h.

## Member Data Documentation

const unsigned pcl::GaussianKernel::MAX_KERNEL_WIDTH = 71

static

Definition at line 63 of file gaussian.h.

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

- /build/pcl-6_P28C/pcl-1.7.2/common/include/pcl/common/gaussian.h
- /build/pcl-6_P28C/pcl-1.7.2/common/include/pcl/common/impl/gaussian.hpp