42 #include <pcl/pcl_base.h>
43 #include <pcl/search/search.h>
44 #include <boost/optional.hpp>
45 #include <pcl/search/search.h>
54 template<
typename Po
intInT,
typename Po
intOutT>
58 using Ptr = shared_ptr<ConvolvingKernel<PointInT, PointOutT> >;
59 using ConstPtr = shared_ptr<const ConvolvingKernel<PointInT, PointOutT> >;
102 p.x = p.y = p.z = std::numeric_limits<float>::quiet_NaN ();
114 template<
typename Po
intInT,
typename Po
intOutT>
122 using Ptr = shared_ptr<GaussianKernel<PointInT, PointOutT> >;
123 using ConstPtr = shared_ptr<GaussianKernel<PointInT, PointOutT> >;
129 ,
threshold_ (std::numeric_limits<float>::infinity ())
168 template<
typename Po
intInT,
typename Po
intOutT>
178 using Ptr = shared_ptr<GaussianKernelRGB<PointInT, PointOutT> >;
179 using ConstPtr = shared_ptr<GaussianKernelRGB<PointInT, PointOutT> >;
195 template <
typename Po
intIn,
typename Po
intOut,
typename KernelT>
204 using Ptr = shared_ptr<Convolution3D<PointIn, PointOut, KernelT> >;
205 using ConstPtr = shared_ptr<Convolution3D<PointIn, PointOut, KernelT> >;
283 #include <pcl/filters/impl/convolution_3d.hpp>
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< const PointCloud< PointT > > ConstPtr
Convolution3D handles the non organized case where width and height are unknown or if you are only in...
KdTreePtr getSearchMethod()
Get a pointer to the search method used.
void setKernel(const KernelT &kernel)
Set convolving kernel.
bool initCompute()
initialize computation
typename KdTree::Ptr KdTreePtr
KernelT kernel_
convlving kernel
double getRadiusSearch()
Get the sphere radius used for determining the neighbors.
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
void setSearchSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to the input dataset that we need to estimate features at every point for.
typename PointCloudIn::ConstPtr PointCloudInConstPtr
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors.
KdTreePtr tree_
A pointer to the spatial search object.
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation.
unsigned int threads_
number of threads
shared_ptr< Convolution3D< PointIn, PointOut, KernelT > > Ptr
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
void convolve(PointCloudOut &output)
Convolve point cloud.
pcl::PointCloud< PointOut > PointCloudOut
Convolution3D()
Constructor.
PointCloudInConstPtr getSearchSurface()
Get a pointer to the surface point cloud dataset.
shared_ptr< Convolution3D< PointIn, PointOut, KernelT > > ConstPtr
double search_radius_
The nearest neighbors search radius for each point.
Class ConvolvingKernel base class for all convolving kernels.
shared_ptr< ConvolvingKernel< PointInT, PointOutT > > Ptr
virtual PointOutT operator()(const Indices &indices, const std::vector< float > &distances)=0
Convolve point at the center of this local information.
ConvolvingKernel()
empty constructor
static void makeInfinite(PointOutT &p)
Utility function that annihilates a point making it fail the pcl::isFinite test.
PointCloudInConstPtr input_
source cloud
shared_ptr< const ConvolvingKernel< PointInT, PointOutT > > ConstPtr
typename PointCloud< PointInT >::ConstPtr PointCloudInConstPtr
void setInputCloud(const PointCloudInConstPtr &input)
Set input cloud.
virtual ~ConvolvingKernel()=default
empty destructor
virtual bool initCompute()
Must call this method before doing any computation.
Gaussian kernel implementation interface Use this as implementation reference.
void setThresholdRelativeToSigma(float sigma_coefficient)
Set the distance threshold relative to a sigma factor i.e.
boost::optional< float > sigma_coefficient_
virtual PointOutT operator()(const Indices &indices, const std::vector< float > &distances)
Convolve point at the center of this local information.
void setSigma(float sigma)
Set the sigma parameter of the Gaussian.
bool initCompute()
Must call this method before doing any computation.
GaussianKernel()
Default constructor.
void setThreshold(float threshold)
Set the distance threshold such as pi, ||pi - q|| > threshold are not considered.
Gaussian kernel implementation interface with RGB channel handling Use this as implementation referen...
PointOutT operator()(const Indices &indices, const std::vector< float > &distances)
Convolve point at the center of this local information.
GaussianKernelRGB()
Default constructor.
shared_ptr< pcl::search::Search< PointT > > Ptr
IndicesAllocator<> Indices
Type used for indices in PCL.