车载点云道路部件——路灯提取尝试1

5 篇文章 3 订阅
4 篇文章 0 订阅

1.渐进形态学滤波

#include <pcl/segmentation/progressive_morphological_filter.h>

重要参数:

 // 创建形态学滤波器对象
    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);

 

2.体素滤波

#include <pcl/filters/voxel_grid.h>  //体素滤波相关

体素栅格滤波

    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filter(new pcl::PointCloud<pcl::PointXYZ>);

    pcl::VoxelGrid<pcl::PointXYZ> sor;

    sor.setInputCloud(cloud);

    sor.setLeafSize(0.3f, 0.3f, 0.3f);//体素大小设置为30*30*30cm

    sor.filter(*cloud_filter);

 

 

3.提取点云中的柱状物体

寻找最大最小的xy   根据网格大小 划分  投影   根据落在同一网格内的点云数量判断是否为潜在柱状物

计算z的最大最小高度    周围八个栅格  使用ransac算法 提取圆柱    但只能提取出两根  而且数据不连续  代码报错vector超限

 

4.欧式聚类

效率太低 不采取

 

5.目前的路灯提取方法:

渐进形态学滤波滤除地面;

目前分段处理,取出一部分车载点云,提取出非地面点object;

 

 

体素滤波,对非地面点作一次抽稀;

 

根据道路中心线和道路宽度,对非地面点作一次平面方向的直通滤波,滤除建筑物,只留下间断的行道树、路灯等交通设施;

沿Z方向将非地面点进行切分,我选择三等分,这里有最大的问题,实验数据路灯高于树木,因此在高处,路灯最为明晰,但是若路灯完全夹杂在树木中,则可能无法正确提取出路灯,选择高处的另一个原因是行道树在路灯高度主树干基本已经分叉,此时提取出的圆柱体大概率为路灯设施。若在切分的低处,提取出的圆柱既有路灯又有树干,效果不佳;

自动循环提取圆柱体,但是在提取出两个后,又出现vector超限问题;改用非循环提取,可以继续提取,不报错,理论上提取出4个路灯,实际提取出三个柱体,应该是参数的原因,导致第四个柱体未能提取,愁啊;

提取出各圆柱xy的范围,再去原始数据中提取出所有xy在该范围内的点,可以得到完整的路灯柱体,但路灯头是需要后续处理的;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

 

 

 

 

 

    

 


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值