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/filters/convolution.h>
Public Types |
|
enum | BORDERS_POLICY { BORDERS_POLICY_IGNORE = -1, BORDERS_POLICY_MIRROR = 0, BORDERS_POLICY_DUPLICATE = 1 } |
The borders policy available. More... |
|
using | PointCloudIn = pcl::PointCloud< PointIn > |
using | PointCloudInPtr = typename PointCloudIn::Ptr |
using | PointCloudInConstPtr = typename PointCloudIn::ConstPtr |
using | PointCloudOut = pcl::PointCloud< PointOut > |
using | Ptr = shared_ptr< Convolution< PointIn, PointOut > > |
using | ConstPtr = shared_ptr< const Convolution< PointIn, PointOut > > |
Public Member Functions |
|
Convolution () | |
Constructor. More... |
|
~Convolution () | |
Empty destructor. More... |
|
void | setInputCloud (const PointCloudInConstPtr &cloud) |
Provide a pointer to the input dataset. More... |
|
void | setKernel (const Eigen::ArrayXf &kernel) |
Set convolving kernel. More... |
|
void | setBordersPolicy (int policy) |
Set the borders policy. More... |
|
int | getBordersPolicy () |
Get the borders policy. More... |
|
void | setDistanceThreshold (const float &threshold) |
const float & | getDistanceThreshold () const |
void | setNumberOfThreads (unsigned int nr_threads=0) |
Initialize the scheduler and set the number of threads to use. More... |
|
void | convolveRows (PointCloudOut &output) |
Convolve a float image rows by a given kernel. More... |
|
void | convolveCols (PointCloudOut &output) |
Convolve a float image columns by a given kernel. More... |
|
void | convolve (const Eigen::ArrayXf &h_kernel, const Eigen::ArrayXf &v_kernel, PointCloudOut &output) |
Convolve point cloud with an horizontal kernel along rows then vertical kernel along columns : convolve separately. More... |
|
void | convolve (PointCloudOut &output) |
Convolve point cloud with same kernel along rows and columns separately. More... |
|
Protected Member Functions |
|
void | convolve_rows (PointCloudOut &output) |
convolve rows and ignore borders More... |
|
void | convolve_cols (PointCloudOut &output) |
convolve cols and ignore borders More... |
|
void | convolve_rows_mirror (PointCloudOut &output) |
convolve rows and mirror borders More... |
|
void | convolve_cols_mirror (PointCloudOut &output) |
convolve cols and mirror borders More... |
|
void | convolve_rows_duplicate (PointCloudOut &output) |
convolve rows and duplicate borders More... |
|
void | convolve_cols_duplicate (PointCloudOut &output) |
convolve cols and duplicate borders More... |
|
void | initCompute (PointCloudOut &output) |
init compute is an internal method called before computation More... |
|
void | makeInfinite (PointOut &p) |
void | makeInfinite (pcl::RGB &p) |
Protected Attributes |
|
unsigned int | threads_ |
The number of threads the scheduler should use. More... |
|
Detailed Description
template<typename PointIn, typename PointOut>
class pcl::filters::Convolution< PointIn, PointOut >
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:
- Ignoring: elements at special locations are filled with zero (default behaviour)
- Mirroring: the missing rows or columns are obtained through mirroring
- Duplicating: the missing rows or columns are obtained through duplicating
Definition at line 72 of file convolution.h.
Member Typedef Documentation
ConstPtr
using pcl::filters::Convolution< PointIn, PointOut >::ConstPtr = shared_ptr< const Convolution<PointIn, PointOut> > |
Definition at line 80 of file convolution.h.
PointCloudIn
using pcl::filters::Convolution< PointIn, PointOut >::PointCloudIn = pcl::PointCloud<PointIn> |
Definition at line 75 of file convolution.h.
PointCloudInConstPtr
using pcl::filters::Convolution< PointIn, PointOut >::PointCloudInConstPtr = typename PointCloudIn::ConstPtr |
Definition at line 77 of file convolution.h.
PointCloudInPtr
using pcl::filters::Convolution< PointIn, PointOut >::PointCloudInPtr = typename PointCloudIn::Ptr |
Definition at line 76 of file convolution.h.
PointCloudOut
using pcl::filters::Convolution< PointIn, PointOut >::PointCloudOut = pcl::PointCloud<PointOut> |
Definition at line 78 of file convolution.h.
Ptr
using pcl::filters::Convolution< PointIn, PointOut >::Ptr = shared_ptr< Convolution<PointIn, PointOut> > |
Definition at line 79 of file convolution.h.
Member Enumeration Documentation
BORDERS_POLICY
enum pcl::filters::Convolution::BORDERS_POLICY |
The borders policy available.
Enumerator | |
---|---|
BORDERS_POLICY_IGNORE | |
BORDERS_POLICY_MIRROR | |
BORDERS_POLICY_DUPLICATE |
Definition at line 84 of file convolution.h.
Constructor & Destructor Documentation
Convolution()
pcl::filters::Convolution< PointIn, PointOut >::Convolution |
Constructor.
Definition at line 54 of file convolution.hpp.
~Convolution()
|
inline |
Empty destructor.
Definition at line 93 of file convolution.h.
Member Function Documentation
convolve() [1/2]
|
inline |
Convolve point cloud with an horizontal kernel along rows then vertical kernel along columns : convolve separately.
- Parameters
-
[in] h_kernel kernel for convolving rows [in] v_kernel kernel for convolving columns [out] output the 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 135 of file convolution.hpp.
Referenced by pcl::ColorGradientModality< PointXYZT >::processInputData().
convolve() [2/2]
|
inline |
Convolve point cloud with same kernel along rows and columns separately.
- Parameters
-
[out] output the 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 156 of file convolution.hpp.
convolve_cols()
|
protected |
convolve cols and ignore borders
Definition at line 421 of file convolution.hpp.
convolve_cols_duplicate()
|
protected |
convolve cols and duplicate borders
Definition at line 467 of file convolution.hpp.
convolve_cols_mirror()
|
protected |
convolve cols and mirror borders
Definition at line 514 of file convolution.hpp.
convolve_rows()
|
protected |
convolve rows and ignore borders
Definition at line 281 of file convolution.hpp.
convolve_rows_duplicate()
|
protected |
convolve rows and duplicate borders
Definition at line 327 of file convolution.hpp.
convolve_rows_mirror()
|
protected |
convolve rows and mirror borders
Definition at line 374 of file convolution.hpp.
convolveCols()
|
inline |
Convolve a float image columns by a given kernel.
- Parameters
-
[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 115 of file convolution.hpp.
convolveRows()
|
inline |
Convolve a float image rows by a given kernel.
- Parameters
-
[out] output the 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 95 of file convolution.hpp.
getBordersPolicy()
|
inline |
Get the borders policy.
Definition at line 110 of file convolution.h.
getDistanceThreshold()
|
inline |
- Returns
- the distance threshold
Definition at line 122 of file convolution.h.
initCompute()
|
protected |
init compute is an internal method called before computation
- Parameters
-
[in] output
- Exceptions
-
pcl::InitFailedException
Definition at line 64 of file convolution.hpp.
References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::resize(), and pcl::PointCloud< PointT >::width.
makeInfinite() [1/2]
|
inlineprotected |
Definition at line 275 of file convolution.hpp.
makeInfinite() [2/2]
|
inlineprotected |
Definition at line 224 of file convolution.h.
setBordersPolicy()
|
inline |
Set the borders policy.
Definition at line 107 of file convolution.h.
setDistanceThreshold()
|
inline |
- Remarks
- this is critical so please read it carefully. In 3D the next point in (u,v) coordinate can be really far so a distance threshold is used to keep us from ghost points. The value you set here is strongly related to the sensor. A good value for kinect data is 0.001. Default is std::numeric<float>::infinity ()
- Parameters
-
[in] threshold maximum allowed distance between 2 juxtaposed points
Definition at line 119 of file convolution.h.
setInputCloud()
|
inline |
Provide a pointer to the input dataset.
- Parameters
-
cloud the const boost shared pointer to a PointCloud message
- Remarks
- Will perform a deep copy
Definition at line 99 of file convolution.h.
Referenced by pcl::ColorGradientModality< PointXYZT >::processInputData().
setKernel()
|
inline |
Set convolving kernel.
- Parameters
-
[in] kernel convolving element
Definition at line 104 of file convolution.h.
Referenced by pcl::ColorGradientModality< PointXYZT >::processInputData().
setNumberOfThreads()
|
inline |
Initialize the scheduler and set the number of threads to use.
- Parameters
-
nr_threads the number of hardware threads to use (0 sets the value back to automatic)
Definition at line 127 of file convolution.h.
References pcl::filters::Convolution< PointIn, PointOut >::threads_.
Member Data Documentation
threads_
|
protected |
The number of threads the scheduler should use.
Definition at line 221 of file convolution.h.
Referenced by pcl::filters::Convolution< PointIn, PointOut >::setNumberOfThreads().
The documentation for this class was generated from the following files:
- pcl/filters/convolution.h
- pcl/filters/impl/convolution.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1filters_1_1_convolution.html