点云处理(2):基于RGB值特征检测的点云分割算法

Tips:本文已在项目中应用,若对本方法比较认可和熟悉,可通过了解“0. 应用描述”和“1. 算法理论”部分完成自己的算法。

0. 应用描述

通过深度相机采集到彩色图像(rgb.png)和深度图像(depth.png),并且两张图片是像素对准的,由此可得到数据类型为pcl::PointXYZRGB的点云信息(png格式的深度图像转pcd点云格式(C++))。在进行点云分割时,往往因为两个物体挨得太紧而无法进行分割。一般而言,特征处点云并不见得是有特别明显的点云特征,所以基于点云聚类分割的方法将不容易完成分割。但是,往往特征处的RGB值相比于非特征处是有明显差异的,可以根据特征处的差异值将特征处的点云剔除,然后再进行聚类、点云分割。

1. 算法理论

在这里插入图片描述
图像特征以缝隙为例,如图所示为rgb.png的局部放大图,缝隙处的RGB值较非缝隙处有明显差异,可根据这种差异将缝隙处的点云剔除掉,然后再进行点云分割,便可将两个紧密的物体点云分割开。
如图中1框内,中心像素即为要检测的像素,通过比较,发现中心像素与周围8个像素点的RGB值差异不大,不认为是缝隙特征点,保留该点。类似地,2框内中心像素与周围像素有部分差异,可认为是缝隙特征边缘点,根据设定的阈值进行取舍。同样地,3框内中心像素与周围像素存在巨大差异,可认为是缝隙特征点,删除点云中的该点。
依次进行后可发现,点云特征界线变得明显,可通过点云聚类将特征处两侧的点云分割开。
因此,如何取舍一个点云是比较重要的,可根据自己应用的要求设计判断策略

2. 基于PCL的C++程序实现

本文使用以上提到的判断策略,即对像素紧挨的8个点进行判断,若出现多个像素点与该像素点有明显差异,则删除点云中的对应点;否则,保留该点。
<暂时不予披露,请自行编写。>

3. 效果图

在这里插入图片描述
图中点云的中间位置为两个盒子的缝隙,在不加本文分割算法时,两个盒子的点云难以聚类、分割。
在这里插入图片描述
加入本文算法后,箱子可以被完全聚类、分割。

4. 总结

通过实验,这一思想可以完成密集的、特征不明显的点云聚类、分割工作。根据应用场景的不同,可以设计不同的特征提取方式,然后根据提取信息对点云进行操作。总之,RGB彩色图片(或灰度图片)的像素特征可作为对点云操作的依据。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
PCL(Point Cloud Library)是一个开源的点云数据处理库,它提供了一系列用于处理、分析和可视化点云数据算法和工具。下面是PCL点云数据处理的一般原理: 1. 数据获取:从传感器(如激光雷达、RGB-D相机等)获取原始点云数据。 2. 数据处理:对原始点云进行预处理,包括滤波、降采样、去噪等。滤波可以去除离群点或噪声,降采样可以减少点云密度,去噪可以去除传感器噪声。 3. 特征提取:从点云中提取有意义的特征信息,如表面法线、曲率、边缘等。这些特征可以用于后续的分割、配准、识别等任务。 4. 分割:将点云分割成不同的部分,每个部分可以代表一个对象或物体。分割可以基于几何属性(如平面、曲率等)或语义信息(如颜色、纹理等)进行。 5. 配准:将多个点云对齐到同一个坐标系中,以便进行后续的融合或比较。配准可以基于特征匹配、ICP(Iterative Closest Point)等算法进行。 6. 重建:将点云数据转换为更高级的表示形式,如三维网格或体素格。这可以方便后续的形状分析、表面重建等任务。 7. 可视化:将处理后的点云数据进行可视化,以便观察和分析。可视化可以通过三维渲染引擎或点云显示工具进行。 以上是PCL点云数据处理的一般原理,具体的实现过程可以根据具体的应用场景和算法选择进行调整和优化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值