W3cubDocs

/PointCloudLibrary

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

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, std::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, std::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, std::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, std::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, std::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.

Member Function Documentation

compute() [1/2]

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

compute() [2/2]

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

computeGradients() [1/2]

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

computeGradients() [2/2]

template<typename PointT >
void pcl::GaussianKernel::computeGradients ( const pcl::PointCloud< PointT > & input,
std::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 217 of file gaussian.h.

convolve() [1/2]

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

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

convolve() [2/2]

template<typename PointT >
void pcl::GaussianKernel::convolve ( const pcl::PointCloud< PointT > & input,
std::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 171 of file gaussian.h.

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

convolveCols() [1/2]

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.

convolveCols() [2/2]

template<typename PointT >
void pcl::GaussianKernel::convolveCols ( const pcl::PointCloud< PointT > & input,
std::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 81 of file gaussian.hpp.

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

convolveRows() [1/2]

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.

convolveRows() [2/2]

template<typename PointT >
void pcl::GaussianKernel::convolveRows ( const pcl::PointCloud< PointT > & input,
std::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 48 of file gaussian.hpp.

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

smooth() [1/2]

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

smooth() [2/2]

template<typename PointT >
void pcl::GaussianKernel::smooth ( const pcl::PointCloud< PointT > & input,
std::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 252 of file gaussian.h.

Member Data Documentation

MAX_KERNEL_WIDTH

const unsigned pcl::GaussianKernel::MAX_KERNEL_WIDTH = 71
static

Definition at line 61 of file gaussian.h.


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

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_gaussian_kernel.html