Public Member Functions | Static Public Attributes
pcl::GaussianKernel Class Reference

#include <gaussian.h>

List of all members.

Public Member Functions

void compute (float sigma, Eigen::VectorXf &kernel, unsigned kernel_width=MAX_KERNEL_WIDTH) const
void compute (float sigma, Eigen::VectorXf &kernel, Eigen::VectorXf &derivative, unsigned kernel_width=MAX_KERNEL_WIDTH) const
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
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
void convolve (const pcl::PointCloud< float > &input, const Eigen::VectorXf &horiz_kernel, const Eigen::VectorXf &vert_kernel, pcl::PointCloud< float > &output) const
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
void convolveCols (const pcl::PointCloud< float > &input, const Eigen::VectorXf &kernel, pcl::PointCloud< float > &output) const
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
void convolveRows (const pcl::PointCloud< float > &input, const Eigen::VectorXf &kernel, pcl::PointCloud< float > &output) const
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
 GaussianKernel ()
void smooth (const pcl::PointCloud< float > &input, const Eigen::VectorXf &gaussian_kernel, pcl::PointCloud< float > &output) const
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

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

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]kernelthe computed gaussian kernel
[in]kernel_widththe desired kernel width upper bond
Exceptions:
pcl::KernelWidthTooSmallException

Definition at line 41 of file gaussian.cpp.

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]kernelthe computed gaussian kernel
[out]derivativethe computed kernel derivative
[in]kernel_widththe desired kernel width upper bond
Exceptions:
pcl::KernelWidthTooSmallException

Definition at line 76 of file gaussian.cpp.

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]inputimage to compute gardients for
[in]gaussian_kernelthe gaussian kernel to be used
[in]gaussian_kernel_derivativethe associated derivative
[out]grad_xgradient along X direction
[out]grad_ygradient 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]inputimage to compute gardients for
[in]field_accessora field accessor
[in]gaussian_kernelthe gaussian kernel to be used
[in]gaussian_kernel_derivativethe associated derivative
[out]grad_xgradient along X direction
[out]grad_ygradient 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_kernelkernel for convolving rows
[in]vert_kernelkernel for convolving columns
[in]inputimage to convolve
[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 151 of file gaussian.h.

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]inputimage to convolve
[in]field_accessora field accessor
[in]horiz_kernelkernel for convolving rows
[in]vert_kernelkernel for convolving columns
[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 173 of file gaussian.h.

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]inputthe image to convolve
[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 179 of file gaussian.cpp.

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]inputthe image to convolve
[in]field_accessora field accessor
[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 79 of file gaussian.hpp.

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]kernelconvolution kernel
[in]inputthe image to convolve
[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 134 of file gaussian.cpp.

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]inputthe image to convolve
[in]field_accessora field accessor
[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 46 of file gaussian.hpp.

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]inputimage
[in]gaussian_kernelthe gaussian kernel to be used
[out]outputthe 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]inputimage
[in]field_accessora field accessor
[in]gaussian_kernelthe gaussian kernel to be used
[out]outputthe 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:


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:41:08