42 #include <pcl/filters/filter.h> 43 #include <pcl/search/pcl_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 ()),
92 computePointWeight (
const int pid,
const std::vector<int> &indices,
const std::vector<float> &distances);
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> void setHalfSize(const double sigma_s)
Set the half size of the Gaussian bilateral filter window.
double getStdDev() const
Get the value of the current standard deviation parameter of the bilateral filter.
Filter represents the base filter class.
shared_ptr< const BilateralFilter< PointT > > ConstPtr
A bilateral filter implementation for point cloud data.
PointCloud represents the base class in PCL for storing collections of 3D points. ...
void applyFilter(PointCloud &output) override
Filter the input data and store the results into output.
shared_ptr< BilateralFilter< PointT > > Ptr
void setStdDev(const double sigma_r)
Set the standard deviation parameter.
shared_ptr< pcl::search::Search< PointT > > Ptr
double computePointWeight(const int pid, const std::vector< int > &indices, const std::vector< float > &distances)
Compute the intensity average for a single point.
BilateralFilter()
Constructor.
double getHalfSize() const
Get the half size of the Gaussian bilateral filter window as set by the user.
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.