参考:https://www.cnblogs.com/ironstark/p/5017428.html

1. 航空测量与点云的形态学

  • 航空测量是对地形地貌进行测量的一种高效手段。生成地形三维形貌一直是地球学、测量学的研究重点。但对于城市、森林等独特地形来说,航空测量会受到影响。因为土地表面的树、地面上的房子都认为的改变了地貌,可以认为是地貌上的噪声点。设计一种有效的手段去除地面噪声对地形测量的影响显得非常重要。这种工作可以认为是一种特殊的点云分割,一般情况下点云分割的目标是去除地面,而这种方法需要在不使用地面平整假设的前提下获得地面。
  • 形态学是图像处理中非常重要的概念,对二值图像而言,可由简单的膨胀运算和腐蚀运算组成一个完整的图像处理族。但是想要将这个算法移植到三维点云上是比较难的,首先一般的点云没有明显的映射值,也没有清晰的定义域,很难设计形态学处理的基理。但是LIDAR点云例外。由于LIDAR点云由飞机获得,飞机距离地面相对较远,且测量方向和地面垂直,这就形成了比较完整的xy->z映射(z方向的范围远远小于xy方向),z方向代表地面物体的高度,x、y方向为平行与地面且相互垂直的两个轴。有了明确的定义域以及单值映射关系就有了设计形态学算法的基本要素。实际上除了形态学算法之外,许多图像处理算法都可以用来分割LIDAR点云了,本质上这就是一幅大图像。

2. 三维形态学算子

  • 对于图像而言,形态学运算一般是针对二值图像而言的。当然也有针对灰度的形态学运算,其原理应该和针对点云的形态学运算类似(我猜的)。形态学算子的设计实际上非常简单,只要能设计出基础的膨胀和腐蚀算子就可以组合得到一系列的处理。


    其中,d表示膨胀算子,e表示腐蚀算子。算子的原理有些像中值滤波,通过选取一个窗w中最高点或最低点来完成图像的膨胀和腐蚀,其效果如下图所示:
  • 在航拍图的横截面上可以很清楚的看出膨胀与腐蚀的效果。对于房子和树可以用不同的尺度窗(从小到大)先腐蚀至地面。但是这会导致一个巨大的问题…如果地面上有个土包(比如秦始皇陵),那么这个土包也会在一次次的腐蚀中被消耗。那岂不是秦始皇陵就发现不了?所以还有一个补偿算法用于解决这个问题,称为线性补偿算法。
  • 建筑物和土包有一个巨大的区别,建筑物往往相对比较陡峭,而土包却是变化比较平缓的。这个可以作为一个判据,用于判断物体是否需要被腐蚀,也作为窗收敛的判据。

    式中k称为斜率,代表下一个窗的大小是上一个窗的2×k倍。

    s是一个因子。

    dh是切深判据,每一次腐蚀大于切深判据才认为是有效的,小于切深判据则是土包。
      上述公式是怎么发现的就需要问论文作者了,所有材料都被收录于文章:《A Progressive Morphological Filter for Removing Nonground Measurements From Airborne LIDAR Data》

3. PCL对本算法的实现

//生成形态滤波器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);// 从标号到点云pcl::ExtractIndices<pcl::PointXYZ> extract;extract.setInputCloud(cloud);extract.setIndices(ground);extract.filter(*cloud_filtered);

算法效果如下图所示:

【PCL】—基于形态学的点云分割算法详解相关推荐

  1. 【PCL】—超体聚类点云分割算法详解

    参考:https://www.cnblogs.com/ironstark/p/5013968.html 1. 超体聚类--一种来自图像的分割方法 超体(super voxel)是一种集合,集合的元素是 ...

  2. 【视频课】图像分割最新内容来了(言有三新录制4部分实例分割算法详解)

    课程介绍 图像分割在直播,电商,自动驾驶等行业中有着广泛的应用,有三AI此前推出了<深度学习之图像分割-理论实践篇>课程,让你以最短的时间掌握深度学习图像分割的基础知识并进行代码实践. 我 ...

  3. 点云关键算法详解及实战剖析正式开讲!(涉及分割、配准、关键点、识别、重建等)...

    01 背景介绍 计算机视觉的最终体现是三维视觉,而三维视觉的表达方式则是点云,点云处理在整个三维视觉领域占有非常重要的地位,几乎涉及到所有相关领域,例如自动驾驶感知定位.SLAM.三维场景重建.AR/ ...

  4. 基于正交投影的点云局部特征描述详解

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本次介绍一个发表于Pattern Recognition的经典三维点云描述子TOLDI,首先进行算法阐 ...

  5. 一文详解点云分割算法

    作者丨书生意封侯@知乎 来源丨https://zhuanlan.zhihu.com/p/470782623 编辑丨3D视觉工坊 从某种意义上说,地面点剔除(分割)也属于点云分割的一种,但两者技术路线有 ...

  6. PCL—低层次视觉—点云分割(基于凹凸性)

    1.图像分割的两条思路 场景分割时机器视觉中的重要任务,尤其对家庭机器人而言,优秀的场景分割算法是实现复杂功能的基础.但是大家搞了几十年也还没搞定--不是我说的,是接下来要介绍的这篇论文说的.图像分割 ...

  7. PCL之点云分割算法概述

    PCL中提供了点云分割的基础数据结构和部分通用算法,目前实现的算法主要是基于聚类分割思想和基于随机采样一致性的分割算法,以下对这两种方法的原理进行介绍: 1) 基于聚类分割算法 在聚类方法中每个点都与 ...

  8. 基于八叉树的区域增长点云分割算法

    基于八叉树的区域增长点云分割算法 1. 提出问题 激光雷达探测到城市环境的物体表面构成三维几何点,相应的点云分割技术常用于建筑物重建.由于建筑物的复杂性,数据分割计算量很大,传统的点云分割方法需人工干 ...

  9. 基于 U-Net 的医学影像分割算法综述

    来源:UNknown知识库 转载自新机器视觉 仅做学术分享,若侵权,请联系删文 ▍一.医学图像分割简介 医学影像分割是医学影像分析中的重要领域,也是计算机辅助诊断.监视.干预和治疗所必需的一环,其关键 ...

最新文章

  1. java桌游设计,java毕业设计_springboot框架的桌游吧管理
  2. java 复合_Java复合语句的使用方法详解
  3. Java 应用线上问题排查思路、常用工具小结
  4. Boost:求容器的最小元素和最大元素
  5. 设计前沿:25个设计师向您展示 iOS 7 界面
  6. SQL Server 2000详细安装过程及配置
  7. GO开发 -- could not launch process: decoding dwarf section info at offset 0x0: too short
  8. linux容器进程号,linux下docker启动容器,查看容器、进程、日志等命令
  9. Apache配置问题
  10. zend studio【快捷键】
  11. 扇贝有道180913每日一句
  12. java语言包安装_Eclipse 多国语言包的安装以及插件的安装方法
  13. 8个问题看你是否真的懂 JS
  14. 【c++】《搜索习题集》题解,更新至DFS之搜索顺序
  15. 苹果MacBook 装双系统win10蓝牙找不到的方法
  16. 使用 SkyEye 模拟 ARM Linux
  17. 计算神经科学简介~【整理自】类脑计算背后的计算神经科学框架
  18. mobi怎么在iphone上打开?
  19. 微软工程院 硕士_微软工程院招聘NLP算法研究员实习生|NLP算法工程师实习生_北京实习招聘...
  20. 满二叉树和完全二叉树的区别

热门文章

  1. 六年级下计算机课ppt课件ppt课件,六年级下册计算机信息技术ppt课件.ppt
  2. 中小型his系统维护
  3. ARM:特殊功能寄存器、Load/Store内存读写指令、栈操作指令
  4. MPI求计算cosx的定积分
  5. 台达PLC ES与欧姆龙E5CC温控器485通讯程序带注释
  6. 德仪TPA6100 DIY娱乐级耳机放大器
  7. 订单规格数据统计功能总结
  8. android 照片转视频教程,手机一张照片制作视频教程 安卓手机怎么将照片制作成视频?...
  9. 小学生用计算机好吗,小学生用点读机好还是平板电脑好
  10. java restTemplate请求get接口下载文件