经纬线扫描法的基本思想是:将经过坐标变换后的二维数据点集按照 x值的大小排序后存储在一个链表中,在二维平面建立点集的最小包围盒并分别计算出 x 和 y 的最大、最小值;令经线从 x 的最小值开始,取步长为dx,在 x 的取值范围内分别计算出每根经线的最大和最小 y 值,并将它们的索引值放在一个新建的链表中,扫描完整个 x 区间;同样的方法扫描纬线,最后将重复的索引值删掉。
该算法的运算速度受点云点数以及搜索分辨率影响。下面代码在点云形状近似为平面,且在xoy平面上投影面积最大时表现较好,其他情况需要修改。
可参考PCL:点云数据基于法线的边界提取(从最初的法线估计理论推导到最终的边界提取)
该算法的运算速度受点云点数以及搜索半径影响。
原理参考:alpha shapes提取平面点云边界点
该算法的运算速度受点云点数以及搜索半径影响。
手写实现:在alpha-shape计算二维点云边界–c++实现基础上精简优化
调用api: