42 #include <pcl/filters/filter.h>
43 #include <pcl/search/search.h>
55 template<
typename Po
intT>
65 using Ptr = shared_ptr<BilateralFilter<PointT> >;
66 using ConstPtr = shared_ptr<const BilateralFilter<PointT> >;
88 { sigma_s_ = sigma_s; }
93 {
return (sigma_s_); }
100 { sigma_r_ = sigma_r;}
105 {
return (sigma_r_); }
127 kernel (
double x,
double sigma)
128 {
return (std::exp (- (x*x)/(2*sigma*sigma))); }
131 double sigma_s_{0.0};
133 double sigma_r_{std::numeric_limits<double>::max ()};
140 #ifdef PCL_NO_PRECOMPILE
141 #include <pcl/filters/impl/bilateral.hpp>
A bilateral filter implementation for point cloud data.
shared_ptr< BilateralFilter< PointT > > Ptr
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
double getStdDev() const
Get the value of the current standard deviation parameter of the bilateral filter.
shared_ptr< const BilateralFilter< PointT > > ConstPtr
BilateralFilter()
Constructor.
double getHalfSize() const
Get the half size of the Gaussian bilateral filter window as set by the user.
void applyFilter(PointCloud &output) override
Filter the input data and store the results into output.
void setStdDev(const double sigma_r)
Set the standard deviation parameter.
void setHalfSize(const double sigma_s)
Set the half size of the Gaussian bilateral filter window.
double computePointWeight(const int pid, const Indices &indices, const std::vector< float > &distances)
Compute the intensity average for a single point.
Filter represents the base filter class.
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< pcl::search::Search< PointT > > Ptr
IndicesAllocator<> Indices
Type used for indices in PCL.