42 #include <pcl/common/eigen.h>
43 #include <pcl/point_cloud.h>
44 #include <pcl/exceptions.h>
45 #include <pcl/pcl_base.h>
74 template <
typename Po
intIn,
typename Po
intOut>
82 using Ptr = shared_ptr< Convolution<PointIn, PointOut> >;
83 using ConstPtr = shared_ptr< const Convolution<PointIn, PointOut> >;
193 convolveOneRowDense (
int i,
int j);
198 convolveOneColDense (
int i,
int j);
203 convolveOneRowNonDense (
int i,
int j);
208 convolveOneColNonDense (
int i,
int j);
213 float distance_threshold_;
217 Eigen::ArrayXf kernel_;
229 p.x = p.y = p.z = std::numeric_limits<float>::quiet_NaN ();
235 #include <pcl/filters/impl/convolution.hpp>
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
shared_ptr< const PointCloud< PointT > > ConstPtr
Convolution is a mathematical operation on two functions f and g, producing a third function that is ...
const float & getDistanceThreshold() const
typename PointCloudIn::Ptr PointCloudInPtr
~Convolution()
Empty destructor.
void convolveCols(PointCloudOut &output)
Convolve a float image columns by a given kernel.
Convolution()
Constructor.
void setInputCloud(const PointCloudInConstPtr &cloud)
Provide a pointer to the input dataset.
pcl::PointCloud< PointOut > PointCloudOut
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
void convolve_rows_mirror(PointCloudOut &output)
convolve rows and mirror borders
void makeInfinite(PointOut &p)
shared_ptr< Convolution< PointIn, PointOut > > Ptr
typename PointCloudIn::ConstPtr PointCloudInConstPtr
int getBordersPolicy()
Get the borders policy.
void convolve_cols_duplicate(PointCloudOut &output)
convolve cols and duplicate borders
void convolve_rows_duplicate(PointCloudOut &output)
convolve rows and duplicate borders
void convolveRows(PointCloudOut &output)
Convolve a float image rows by a given kernel.
void convolve_cols(PointCloudOut &output)
convolve cols and ignore borders
void convolve_cols_mirror(PointCloudOut &output)
convolve cols and mirror borders
void convolve_rows(PointCloudOut &output)
convolve rows and ignore borders
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 : convol...
void setDistanceThreshold(const float &threshold)
shared_ptr< const Convolution< PointIn, PointOut > > ConstPtr
void setBordersPolicy(int policy)
Set the borders policy.
void initCompute(PointCloudOut &output)
init compute is an internal method called before computation
void setKernel(const Eigen::ArrayXf &kernel)
Set convolving kernel.
unsigned int threads_
The number of threads the scheduler should use.
BORDERS_POLICY
The borders policy available.
@ BORDERS_POLICY_DUPLICATE