博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从点云中提取杆状物算法
阅读量:6711 次
发布时间:2019-06-25

本文共 878 字,大约阅读时间需要 2 分钟。

原创,转载请注明出处:https://www.cnblogs.com/wellp/p/9486130.html

基于PCL的条件欧拉聚类(ConditionalEuclideanClustering)和RANSAC拟合直线的一种从点云中提取pole的算法,核心思想就是先水平聚类,选择出直径小的cluster,然后竖直聚类,主要过程如下:

1.将点云根据point.z的大小sort。

2.设置z_resolution,从下到上,对每一层的点云进行欧拉聚类,每一层的点云高度为z_resolution。

3.保留直径小于一定threshold的cluster。

4.对保留下来的points做竖直方向的条件欧拉聚类,setClusterTolerance设置的大一些,但是要加条件函数来限制生长的方向,condition_function如下:

1 condition_function(point_type point0, point_type point1)2 {3     float dis_horizon = sqrt(pow(point0.x - point1.x, 2) + (pow(point0.y - point1.y, 2));4     return dis_horizon < dis_threshold;//dis_threshold should be small enough to control grow direction5 }

5.上述过程提取的pole可能如图1所示(带有两侧的灯杆),因为condition_function虽然限制了生长方向主要是竖直方向,但是因为其中的dis_threshold不等于0(也不能为0,因为杆内部的点要聚类到一起),所以再进行RANSAC拟合直线,完成pole的提取,如图2所示。

6.对杆上端的周围点云进行PCA分析,判断是树冠,广告牌还是灯支撑杆,进而过滤掉树干。

   

                     图1                                           图2

 

转载于:https://www.cnblogs.com/wellp/p/9486130.html

你可能感兴趣的文章
《深入Ajax架构和最佳实践》读书笔记
查看>>
从github搬到博客园
查看>>
JavaWeb网上图书商城完整项目-CommonUtils(1生成uuid,2Map转换成JavaBean)
查看>>
java 中的 自定义viewUtils框架
查看>>
JS-完美运动框架(封装)
查看>>
Codeforces 487C Prefix Product Sequence[数论+构造]
查看>>
H3C交换机配置DHCP服务器
查看>>
mysql源码安装
查看>>
Canvas 给图形绘制阴影
查看>>
HDU-2577 How to Type 动态规划
查看>>
整数转二进制,浮点数转二进制
查看>>
如何在DCS管理控制台将两个Redis主备实例建立全球灾备。
查看>>
说说Android桌面(Launcher应用)背后的故事(五)——桌面壁纸的添加
查看>>
嵌入式C语言自我修养 12:有一种宏,叫可变参数宏
查看>>
easyui的datagrid分页写法小结
查看>>
杭电oj2081、2091、1004、2057
查看>>
Carbondata源码系列(一)文件生成过程
查看>>
处理器架构
查看>>
Windows学习总结(9)——Windows系统常用的网络控制指令
查看>>
创建mysql数据库
查看>>