#include <convolution.h>
Public Types | |
| enum | BORDERS_POLICY { BORDERS_POLICY_IGNORE = -1, BORDERS_POLICY_MIRROR = 0, BORDERS_POLICY_DUPLICATE = 1 } |
| The borders policy available. More... | |
| typedef boost::shared_ptr < const Convolution< PointIn, PointOut > > | ConstPtr |
| typedef pcl::PointCloud< PointIn > | PointCloudIn |
| typedef PointCloudIn::ConstPtr | PointCloudInConstPtr |
| typedef PointCloudIn::Ptr | PointCloudInPtr |
| typedef pcl::PointCloud< PointOut > | PointCloudOut |
| typedef boost::shared_ptr < Convolution< PointIn, PointOut > > | Ptr |
Public Member Functions | |
| Convolution () | |
| Constructor. | |
| void | convolve (const Eigen::ArrayXf &h_kernel, const Eigen::ArrayXf &v_kernel, PointCloudOut &output) |
| void | convolve (PointCloudOut &output) |
| void | convolveCols (PointCloudOut &output) |
| void | convolveRows (PointCloudOut &output) |
| int | getBordersPolicy () |
| Get the borders policy. | |
| const float & | getDistanceThreshold () const |
| void | setBordersPolicy (int policy) |
| Set the borders policy. | |
| void | setDistanceThreshold (const float &threshold) |
| void | setInputCloud (const PointCloudInConstPtr &cloud) |
| Provide a pointer to the input dataset. | |
| void | setKernel (const Eigen::ArrayXf &kernel) |
| void | setNumberOfThreads (unsigned int nr_threads=0) |
| Initialize the scheduler and set the number of threads to use. | |
| ~Convolution () | |
| Empty destructor. | |
Protected Member Functions | |
| void | convolve_cols (PointCloudOut &output) |
| convolve cols and ignore borders | |
| void | convolve_cols_duplicate (PointCloudOut &output) |
| convolve cols and duplicate borders | |
| void | convolve_cols_mirror (PointCloudOut &output) |
| convolve cols and mirror borders | |
| void | convolve_rows (PointCloudOut &output) |
| convolve rows and ignore borders | |
| void | convolve_rows_duplicate (PointCloudOut &output) |
| convolve rows and duplicate borders | |
| void | convolve_rows_mirror (PointCloudOut &output) |
| convolve rows and mirror borders | |
| void | initCompute (PointCloudOut &output) |
| void | makeInfinite (PointOut &p) |
| template<> | |
| void | makeInfinite (pcl::RGB &p) |
Protected Attributes | |
| unsigned int | threads_ |
| The number of threads the scheduler should use. | |
Private Member Functions | |
| PointOut | convolveOneColDense (int i, int j) |
| template<> | |
| pcl::PointXYZRGB | convolveOneColDense (int i, int j) |
| template<> | |
| pcl::RGB | convolveOneColDense (int i, int j) |
| PointOut | convolveOneColNonDense (int i, int j) |
| template<> | |
| pcl::PointXYZRGB | convolveOneColNonDense (int i, int j) |
| template<> | |
| pcl::RGB | convolveOneColNonDense (int i, int j) |
| PointOut | convolveOneRowDense (int i, int j) |
| template<> | |
| pcl::PointXYZRGB | convolveOneRowDense (int i, int j) |
| template<> | |
| pcl::RGB | convolveOneRowDense (int i, int j) |
| PointOut | convolveOneRowNonDense (int i, int j) |
| template<> | |
| pcl::PointXYZRGB | convolveOneRowNonDense (int i, int j) |
| template<> | |
| pcl::RGB | convolveOneRowNonDense (int i, int j) |
Private Attributes | |
| int | borders_policy_ |
| Border policy. | |
| float | distance_threshold_ |
| Threshold distance between adjacent points. | |
| int | half_width_ |
| half kernel size | |
| PointCloudInConstPtr | input_ |
| Pointer to the input cloud. | |
| Eigen::ArrayXf | kernel_ |
| convolution kernel | |
| int | kernel_width_ |
| kernel size - 1 | |
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:
Definition at line 77 of file convolution.h.
| typedef boost::shared_ptr< const Convolution<PointIn, PointOut> > pcl::filters::Convolution< PointIn, PointOut >::ConstPtr |
Definition at line 85 of file convolution.h.
| typedef pcl::PointCloud<PointIn> pcl::filters::Convolution< PointIn, PointOut >::PointCloudIn |
Definition at line 80 of file convolution.h.
| typedef PointCloudIn::ConstPtr pcl::filters::Convolution< PointIn, PointOut >::PointCloudInConstPtr |
Definition at line 82 of file convolution.h.
| typedef PointCloudIn::Ptr pcl::filters::Convolution< PointIn, PointOut >::PointCloudInPtr |
Definition at line 81 of file convolution.h.
| typedef pcl::PointCloud<PointOut> pcl::filters::Convolution< PointIn, PointOut >::PointCloudOut |
Definition at line 83 of file convolution.h.
| typedef boost::shared_ptr< Convolution<PointIn, PointOut> > pcl::filters::Convolution< PointIn, PointOut >::Ptr |
Definition at line 84 of file convolution.h.
| enum pcl::filters::Convolution::BORDERS_POLICY |
The borders policy available.
Definition at line 89 of file convolution.h.
| pcl::filters::Convolution< PointIn, PointOut >::Convolution | ( | ) |
Constructor.
Definition at line 47 of file convolution.hpp.
| pcl::filters::Convolution< PointIn, PointOut >::~Convolution | ( | ) | [inline] |
Empty destructor.
Definition at line 98 of file convolution.h.
| void pcl::filters::Convolution< PointIn, PointOut >::convolve | ( | const Eigen::ArrayXf & | h_kernel, |
| const Eigen::ArrayXf & | v_kernel, | ||
| PointCloudOut & | output | ||
| ) | [inline] |
Convolve point cloud with an horizontal kernel along rows then vertical kernel along columns : convolve separately.
| [in] | h_kernel | kernel for convolving rows |
| [in] | v_kernel | kernel for convolving columns |
| [out] | output | the convolved cloud |
| void pcl::filters::Convolution< PointIn, PointOut >::convolve | ( | PointCloudOut & | output | ) | [inline] |
Convolve point cloud with same kernel along rows and columns separately.
| [out] | output | the convolved cloud |
| void pcl::filters::Convolution< PointIn, PointOut >::convolve_cols | ( | PointCloudOut & | output | ) | [protected] |
convolve cols and ignore borders
Definition at line 539 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolve_cols_duplicate | ( | PointCloudOut & | output | ) | [protected] |
convolve cols and duplicate borders
Definition at line 583 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolve_cols_mirror | ( | PointCloudOut & | output | ) | [protected] |
convolve cols and mirror borders
Definition at line 628 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolve_rows | ( | PointCloudOut & | output | ) | [protected] |
convolve rows and ignore borders
Definition at line 405 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolve_rows_duplicate | ( | PointCloudOut & | output | ) | [protected] |
convolve rows and duplicate borders
Definition at line 449 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolve_rows_mirror | ( | PointCloudOut & | output | ) | [protected] |
convolve rows and mirror borders
Definition at line 494 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolveCols | ( | PointCloudOut & | output | ) | [inline] |
Convolve a float image columns by a given kernel.
| [in] | kernel | convolution kernel |
| [out] | output | the convolved image |
Definition at line 109 of file convolution.hpp.
| PointOut pcl::filters::Convolution< PointIn, PointOut >::convolveOneColDense | ( | int | i, |
| int | j | ||
| ) | [inline, private] |
Definition at line 177 of file convolution.hpp.
| pcl::PointXYZRGB pcl::filters::Convolution< pcl::PointXYZRGB, pcl::PointXYZRGB >::convolveOneColDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 263 of file convolution.hpp.
| pcl::RGB pcl::filters::Convolution< pcl::RGB, pcl::RGB >::convolveOneColDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 368 of file convolution.hpp.
| PointOut pcl::filters::Convolution< PointIn, PointOut >::convolveOneColNonDense | ( | int | i, |
| int | j | ||
| ) | [inline, private] |
Definition at line 213 of file convolution.hpp.
| pcl::PointXYZRGB pcl::filters::Convolution< pcl::PointXYZRGB, pcl::PointXYZRGB >::convolveOneColNonDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 317 of file convolution.hpp.
| pcl::RGB pcl::filters::Convolution< pcl::RGB, pcl::RGB >::convolveOneColNonDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 391 of file convolution.hpp.
| PointOut pcl::filters::Convolution< PointIn, PointOut >::convolveOneRowDense | ( | int | i, |
| int | j | ||
| ) | [inline, private] |
Definition at line 167 of file convolution.hpp.
| pcl::PointXYZRGB pcl::filters::Convolution< pcl::PointXYZRGB, pcl::PointXYZRGB >::convolveOneRowDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 243 of file convolution.hpp.
| pcl::RGB pcl::filters::Convolution< pcl::RGB, pcl::RGB >::convolveOneRowDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 351 of file convolution.hpp.
| PointOut pcl::filters::Convolution< PointIn, PointOut >::convolveOneRowNonDense | ( | int | i, |
| int | j | ||
| ) | [inline, private] |
Definition at line 187 of file convolution.hpp.
| pcl::PointXYZRGB pcl::filters::Convolution< pcl::PointXYZRGB, pcl::PointXYZRGB >::convolveOneRowNonDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 283 of file convolution.hpp.
| pcl::RGB pcl::filters::Convolution< pcl::RGB, pcl::RGB >::convolveOneRowNonDense | ( | int | i, |
| int | j | ||
| ) | [private] |
Definition at line 385 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::convolveRows | ( | PointCloudOut & | output | ) | [inline] |
Convolve a float image rows by a given kernel.
| [in] | kernel | convolution kernel |
| [out] | output | the convolved cloud |
Definition at line 89 of file convolution.hpp.
| int pcl::filters::Convolution< PointIn, PointOut >::getBordersPolicy | ( | ) | [inline] |
Get the borders policy.
Definition at line 115 of file convolution.h.
| const float& pcl::filters::Convolution< PointIn, PointOut >::getDistanceThreshold | ( | ) | const [inline] |
Definition at line 127 of file convolution.h.
| void pcl::filters::Convolution< PointIn, PointOut >::initCompute | ( | PointCloudOut & | output | ) | [protected] |
init compute is an internal method called before computation
| [in] | kernel | convolution kernel to be used |
| pcl::InitFailedException |
Definition at line 58 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::makeInfinite | ( | PointOut & | p | ) | [inline, protected] |
Definition at line 231 of file convolution.h.
| void pcl::filters::Convolution< pcl::RGB, pcl::RGB >::makeInfinite | ( | pcl::RGB & | p | ) | [protected] |
Definition at line 397 of file convolution.hpp.
| void pcl::filters::Convolution< PointIn, PointOut >::setBordersPolicy | ( | int | policy | ) | [inline] |
Set the borders policy.
Definition at line 112 of file convolution.h.
| void pcl::filters::Convolution< PointIn, PointOut >::setDistanceThreshold | ( | const float & | threshold | ) | [inline] |
| [in] | threshold | maximum allowed distance between 2 juxtaposed points |
Definition at line 124 of file convolution.h.
| void pcl::filters::Convolution< PointIn, PointOut >::setInputCloud | ( | const PointCloudInConstPtr & | cloud | ) | [inline] |
Provide a pointer to the input dataset.
| cloud | the const boost shared pointer to a PointCloud message |
Definition at line 104 of file convolution.h.
| void pcl::filters::Convolution< PointIn, PointOut >::setKernel | ( | const Eigen::ArrayXf & | kernel | ) | [inline] |
Set convolving kernel
| [in] | kernel | convolving element |
Definition at line 109 of file convolution.h.
| void pcl::filters::Convolution< PointIn, PointOut >::setNumberOfThreads | ( | unsigned int | nr_threads = 0 | ) | [inline] |
Initialize the scheduler and set the number of threads to use.
| nr_threads | the number of hardware threads to use (0 sets the value back to automatic) |
Definition at line 132 of file convolution.h.
int pcl::filters::Convolution< PointIn, PointOut >::borders_policy_ [private] |
Border policy.
Definition at line 215 of file convolution.h.
float pcl::filters::Convolution< PointIn, PointOut >::distance_threshold_ [private] |
Threshold distance between adjacent points.
Definition at line 217 of file convolution.h.
int pcl::filters::Convolution< PointIn, PointOut >::half_width_ [private] |
half kernel size
Definition at line 223 of file convolution.h.
PointCloudInConstPtr pcl::filters::Convolution< PointIn, PointOut >::input_ [private] |
Pointer to the input cloud.
Definition at line 219 of file convolution.h.
Eigen::ArrayXf pcl::filters::Convolution< PointIn, PointOut >::kernel_ [private] |
convolution kernel
Definition at line 221 of file convolution.h.
int pcl::filters::Convolution< PointIn, PointOut >::kernel_width_ [private] |
kernel size - 1
Definition at line 225 of file convolution.h.
unsigned int pcl::filters::Convolution< PointIn, PointOut >::threads_ [protected] |
The number of threads the scheduler should use.
Definition at line 228 of file convolution.h.