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;
129 ,
threshold_ (std::numeric_limits<float>::infinity ())
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;
290 #include <pcl/filters/impl/convolution_3d.hpp>
292 #endif // PCL_FILTERS_CONVOLUTION_3D_H
PointCloudIn::ConstPtr PointCloudInConstPtr
void setKernel(const KernelT &kernel)
Set convolving kernel.
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation...
Class ConvolvingKernel base class for all convolving kernels.
pcl::search::Search< PointIn >::Ptr KdTreePtr
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. ...
void setSearchSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to the input dataset that we need to estimate features at every point for...
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
ConvolvingKernel()
empty constructor
boost::shared_ptr< Convolution3D< PointIn, PointOut, KernelT > > ConstPtr
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
boost::shared_ptr< GaussianKernelRGB< PointInT, PointOutT > > Ptr
pcl::PointCloud< PointIn > PointCloudIn
void setSigma(float sigma)
Set the sigma parameter of the Gaussian.
boost::shared_ptr< GaussianKernel< PointInT, PointOutT > > Ptr
bool initCompute()
Must call this methode before doing any computation.
PointOutT operator()(const std::vector< int > &indices, const std::vector< float > &distances)
Convolve point at the center of this local information.
PointCloud< PointInT >::ConstPtr PointCloudInConstPtr
void convolve(PointCloudOut &output)
Convolve point cloud.
KdTreePtr tree_
A pointer to the spatial search object.
Convolution3D handles the non organized case where width and height are unknown or if you are only in...
GaussianKernel()
Default constructor.
void setThreshold(float threshold)
Set the distance threshold such as pi, ||pi - q|| > threshold are not considered. ...
double search_radius_
The nearest neighbors search radius for each point.
PointCloudInConstPtr getSearchSurface()
Get a pointer to the surface point cloud dataset.
double getRadiusSearch()
Get the sphere radius used for determining the neighbors.
boost::shared_ptr< Convolution3D< PointIn, PointOut, KernelT > > Ptr
boost::shared_ptr< GaussianKernel< PointInT, PointOutT > > ConstPtr
virtual ~ConvolvingKernel()
empty destructor
KernelT kernel_
convlving kernel
boost::shared_ptr< pcl::search::Search< PointT > > Ptr
void setThresholdRelativeToSigma(float sigma_coefficient)
Set the distance threshold relative to a sigma factor i.e.
void setInputCloud(const PointCloudInConstPtr &input)
Set input cloud.
boost::shared_ptr< GaussianKernelRGB< PointInT, PointOutT > > ConstPtr
virtual bool initCompute()
Must call this methode before doing any computation.
static void makeInfinite(PointOutT &p)
Utility function that annihilates a point making it fail the pcl::isFinite test.
KdTreePtr getSearchMethod()
Get a pointer to the search method used.
boost::shared_ptr< const PointCloud< PointT > > ConstPtr
virtual ~GaussianKernel()
GaussianKernelRGB()
Default constructor.
pcl::PointCloud< PointOut > PointCloudOut
bool initCompute()
initialize computation
boost::shared_ptr< const ConvolvingKernel< PointInT, PointOutT > > ConstPtr
Convolution3D()
Constructor.
PointCloudInConstPtr input_
source cloud
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors.
boost::optional< float > sigma_coefficient_
pcl::search::Search< PointIn > KdTree
unsigned int threads_
number of threads
Gaussian kernel implementation interface with RGB channel handling Use this as implementation referen...
Gaussian kernel implementation interface Use this as implementation reference.
virtual PointOutT operator()(const std::vector< int > &indices, const std::vector< float > &distances)
Convolve point at the center of this local information.
~Convolution3D()
Empty destructor.