有时候我们输入的数据并不是点云数据,如STL、PLY、OBJ等数据,他们都是模型数据(即三角网格数据),模型数据的优点就是具有了形状,因此也就有了相关的几何属性,我们可以基于他们进行体积、表面积的计算。不过坏处就是现有的点云配准算法均是基于“点”来进行对齐的过程,单纯只靠模型上的端点,有时很难将一个模型与点云进行配准。因此此时就需要对模型进行采样操作,也就是基于面片来采样出更多的点数据。
CloudCompare中的模型采样方法存储在MeshSamplingTools.cpp中,具体代码如下所示:
PointCloud* MeshSamplingTools::samplePointsOnMesh( GenericMesh* mesh