點雲濾波繼承自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