点云滤波继承自Filter模板类

注意Filter类的filter 方法调用了虚方法applyFilter:



1 inline void  filter (PointCloud &output)
2 {
3 if (!initCompute ())
4 return;
5
6 if (input_.get () == &output) // cloud_in = cloud_out
7 {
8 PointCloud output_temp;
9 applyFilter (output_temp);
10 output_temp.header = input_->header;
11 output_temp.sensor_origin_ = input_->sensor_origin_;
12 output_temp.sensor_orientation_ = input_->sensor_orientation_;
13 pcl::copyPointCloud (output_temp, output);
14 }
15 else
16 {
17 output.header = input_->header;
18 output.sensor_origin_ = input_->sensor_origin_;
19 output.sensor_orientation_ = input_->sensor_orientation_;
20 applyFilter (output);
21 }
22
23 deinitCompute ();
24 }


 

 

ApproximateVoxelGrid进行点云Filter

效果图:

原始点云66901个点,点云平均距离0.038253,采样参数(Grid size 0.2)后点云数目11924

[PCL]ApproximateVoxelGrid_虚方法 [PCL]ApproximateVoxelGrid_方法调用_02