42 #include <pcl/point_cloud.h>
71 template <
typename Po
intIn,
typename Po
intOut>
79 using Ptr = shared_ptr< Convolution<PointIn, PointOut> >;
80 using ConstPtr = shared_ptr< const Convolution<PointIn, PointOut> >;
190 convolveOneRowDense (
int i,
int j);
195 convolveOneColDense (
int i,
int j);
200 convolveOneRowNonDense (
int i,
int j);
205 convolveOneColNonDense (
int i,
int j);
210 float distance_threshold_;
214 Eigen::ArrayXf kernel_;
226 p.x = p.y = p.z = std::numeric_limits<float>::quiet_NaN ();
232 #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
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.
~Convolution()=default
Empty destructor.
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