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> >;
73 sigma_r_ (std::numeric_limits<double>::max ()),
99 { sigma_s_ = sigma_s; }
104 {
return (sigma_s_); }
111 { sigma_r_ = sigma_r;}
116 {
return (sigma_r_); }
132 kernel (
double x,
double sigma)
133 {
return (std::exp (- (x*x)/(2*sigma*sigma))); }
145 #ifdef PCL_NO_PRECOMPILE
146 #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.