一、算法原理
1、流程概述
Marching Cubes算法流程:
- 将三维离散规则数据场分层读入内存;
- 扫描两层数据,逐个构造体素,每个体素中的8个角点取自相邻的两层;
- 将体素每个角点的函数值与给定的等值面值c做比较,根据比较结果,构造该体素的状态表;
- 根据状态表,得出将与等值面有交点的边界体素;
- 通过线性插值方法计算出体素棱边与等值面的交点;
- 利用中心差分方法,求出体素各角点处的法向量,再通过线性插值方法,求出三角面片各顶点处的法向;
- 根据各三角面片上各顶点的坐标及法向量绘制等值面图像。
2、详细流程
移动立方体算法,即pcl::MarchingCubes算法,这个方法最早在1987年在论文《Marching Cubes : A High Resolution 3D Surface Construction Algorithm》中被Willian E. Lorensen 和Harvey E. Cline共同提出。
简单来说,这个三维重建的算法是一个分治的算法,分治的基本单元就是一个小立方体(分割小立方体就相当于是三维空间上的重采样,要分成多少个立方体是