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