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