前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCL库滤波激光雷达点云

PCL库滤波激光雷达点云

作者头像
GIS与遥感开发平台
发布2022-12-03 10:01:39
6210
发布2022-12-03 10:01:39
举报

PCL库滤波激光雷达点云

点云滤波不同于图像滤波,它指的是将原始激光雷达点云数据分为地面点和地物点的二分类过程。由于PCL点云库具备易用、且实现了大多数点云处理算法,我们使用PCL中的渐进形态学滤波算法对点云进行滤波:

  1. 读取点云数据
代码语言:javascript
复制
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZ>);
  pcl::PointIndicesPtr ground (new pcl::PointIndices);

  // Fill in the cloud data
  pcl::PCDReader reader;
  // Replace the path below with the path where you saved your file
  reader.read<pcl::PointXYZ> ("samp.pcd", *cloud);

2.使用PMF算法提取地面点索引,渐进形态学算法基本思想是将点云栅格化作影像处理,进而使用形态学开操作(腐蚀后膨胀)进而剔除小于结构元素S的点云完成滤波。

代码语言:javascript
复制
  // Create the filtering object
 pcl::ProgressiveMorphologicalFilter<pcl::PointXYZ> pmf;
 pmf.setInputCloud (cloud);
 pmf.setMaxWindowSize (20);
 pmf.setSlope (1.0f);
 pmf.setInitialDistance (0.5f);
 pmf.setMaxDistance (3.0f);
 pmf.extract (ground->indices);

  // Create the filtering object
  pcl::ExtractIndices<pcl::PointXYZ> extract;
  extract.setInputCloud (cloud);
  extract.setIndices (ground);
  extract.filter (*cloud_filtered);

3. 将滤波得到的地面点输出

代码语言:javascript
复制
  pcl::PCDWriter writer;
  writer.write<pcl::PointXYZ> ("samp_ground.pcd", *cloud_filtered, false);、

滤波得到地面点

由地面点插值得到DEM

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GIS与遥感开发平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档