boundary函数寻找三维平面点云精确边界(一)

假如我们通过多视图的重建得到了一块近似平面的点云数据如图,从侧面来看,图中的点并非统一在一个标准平面上
我们现在需要找出这样空间的近似平面点云的精细边界 。
函数
函数是里用来搜素点云边界的函数,其核心是alpha shape算法二维或三维空间内的一组点的边界 --中国此函数 返回一个表示包围点 (x,y) 的单个相容二维边界的点索引向量 。点 (x(k),y(k)) 构成边界 。与凸包不同,边界可以向内部收缩以包围这些点 。
#
alpha shape算法的应用大概就是下面这么个过程:
这种包围圆的算法很容易理解,所以,手册里所提到的收缩因子所指的大概就是包围圆的半径了 。半径越大,边界越粗糙,半径越小,边界越精细 。
但是,注意此时的边界是二维散点,函数无法应用于三维的点云数据,图中可以看到此函数对于三维边界的的处理是构成网格并求体积 。
数据降维
既然的内置算法只能够用于二维的点云,所以要想寻找三维空间近似平面点云我们首先想到的方法就是先降维再利用进行二维边界的搜索,如图
这样的想法是将三维点映射到xy平面上(直接砍掉z轴坐标),就可以使用函数轻松找出红豆沙投影点的边界了 。但是这种做法存在一个非常明显的问题 。如下图
蓝色的原点点云构成了一个近似平面,把它看做我们要寻找边缘的主要基准平面 。此时p点并不在基准平面附近,但是单纯在xy平面的投影点在基准平面之外,使用函数找到的边界为绿色边界,事实上由于我们将蓝色基准平面投影到xy平面平面上实际要找的近似平面点云的边界是黄色点的边界 。
【boundary函数寻找三维平面点云精确边界(一)】由这种点云比较复杂而造成边界识别不准确的情况我们将在下一节进行处理 。