介绍
点云分割算法是点云处理中非常重要的一部分内容,扫描出来的点云往往是整幅场景,没有办法对其直接处理,这个时候就需要一些点云分割算法。
PCL是一个强大的库,已经帮我们封装好了许多分割算法,像平面模型、圆柱模型、立方体等一些规则模型的分割,和基于聚类方法的非规则模型的分割。
下面来具体介绍下PCL中主要的点云分割算法。
规则物体的模型分割
这种分割算法主要针对规则物体,比如球、圆柱、平面、立方体,因为这些模型可以很方便的建立起数学模型,后面通过RANSAC算法进行拟合,得出最终的分割模型,若一个场景中有多个规则模型,可以根据拟合的模型进行逐一分割,对相同规则的模型,则是从大到小开始分割。
基于聚类算法的分割
聚类算法在数据分析中应用非常广泛,同样,也适用于三维空间。基于k-means聚类算法,可以分割指定类别的点云。除了k-means,还有自适应类别分割算法。
区域蔓延分割
区域生长分割算法广泛应用于图像分割中,二维图像常常采取区域生长分割算法实现图像分割,由于其分割的高效性,现已被应用于3D分割中,PCL中的类pcl::RegionGrowing用来实现点云的区域生长分割。区域生长分割是基于点云法线的分割算法,算法的主要思路如下:
(1)根据点的曲率值对点云进行排序,曲率最小的点叫做初始种子点,区域生长算法从曲率最小的种子点开始生长,初始种子点所在区域为最平滑区域,从初始种子点所在的区域开始生长可减小分割片段的总数,从而提高算法的效率。