PCL—低层次视觉—点云分割(基于形态学)
2015-12-03 19:56
155 查看
1.航空测量与点云的形态学
航空测量是对地形地貌进行测量的一种高效手段。生成地形三维形貌一直是地球学,测量学的研究重点。但对于城市,森林,等独特地形来说,航空测量会受到影响。因为土地表面的树,地面上的房子都认为的改变了地貌,可以认为是地貌上的噪声点。设计一种有效的手段去除地面噪声对地形测量的影响显得非常重要。这种工作可以认为是一种特殊的点云分割,一般情况下点云分割的目标是去除地面,而这种方法需要在不使用地面平整假设的前提下获得地面。形态学是图像处理中非常重要的概念,对二值图像而言,可由简单的膨胀运算和腐蚀运算组成一个完整的图像处理族。但是想要将这个算法移植到三维点云上是比较难的,首先一般的点云没有明显的映射值,也没有清晰的定义域,很难设计形态学处理的基理。但是LIDAR点云例外。由于LIDAR点云由飞机获得,飞机距离地面相对较远,且测量方向和地面垂直。这就形成了比较完整的xy->z映射(z方向的范围远远小于xy方向),z方向代表地面物体的高度,x,y方向为平行与地面且相互垂直的两个轴。有了明确的定义域以及单值映射关系就有了设计形态学算法的基本要素。实际上除了形态学算法之外,许多图像处理算法都可以用来分割LIDAR点云了,本质上这就是一幅大图像。
2.三维形态学算子
对于图像而言,形态学运算一般是针对二值图像而言的。当然也有针对灰度的形态学运算,其原理应该和针对点云的形态学运算类似(我猜的)。形态学算子的设计实际上非常简单,只要能设计出基础的膨胀和腐蚀算子就可以组合得到一系列的处理。//生成形态滤波器 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);
View Code
算法效果如图:
相关文章推荐
- [转载]C语言头文件的作用
- 网络原理之OSPF协议中RID、DR/BDR的选举规则
- Redis的Value达到1.5g
- GitHub上README.md教程
- Linux挂载错误问题(Error mounting /dev/sda8 at /media)
- 如何触发AspxGridview的PageIndexChanged 客户端事件?
- 2015年11月30日 每天半小时学英语
- Android手势认知
- 关于挂载的一些简单试验
- iOS Get同步与异步
- 基于二部图的推荐
- QTableWidget点击item之外空间时信号的获取
- 错排公式
- linux下添加tomcat自启动
- ASPxGridView 结合CheckBox实现多选(在后台事件代码控制)
- spring bean的scope
- IE兼容模式下两个小问题,JSON.stringify和SCRIPT70 无权限
- 多播与广播详解(二)
- IntentService 串联 按顺序执行(此次任务执行完才执行下一个任务)
- C plus plus(3)---全局,静态(extern,static相关)