从点云中提取杆状物算法

原创,转载请注明出处: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 direction
5 }

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

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

   

                     图1                                           图2

 

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

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值