pcl中如PassThrough等能够使输入和输出是同一个点云

其关键部分就是有一个判断,然后直接用pcl::copyPointCloud进行copy了

inline void filter (PointCloud &output)
{
    
    
  if (!initCompute ())
    return;

  if (input_.get () == &output)  // cloud_in = cloud_out
  {
    
    
    PointCloud output_temp;
    applyFilter (output_temp);
    output_temp.header = input_->header;
    output_temp.sensor_origin_ = input_->sensor_origin_;
    output_temp.sensor_orientation_ = input_->sensor_orientation_;
    pcl::copyPointCloud (output_temp, output);
  }
  else
  {
    
    
    output.header = input_->header;
    output.sensor_origin_ = input_->sensor_origin_;
    output.sensor_orientation_ = input_->sensor_orientation_;
    applyFilter (output);
  }

  deinitCompute ();
}

猜你喜欢

转载自blog.csdn.net/weixin_42295969/article/details/131707491
今日推荐