基于转动惯量和偏心率的描述符
在本教程中,我们将学习如何使用 pcl::MomentOfInertiaEstimation 类来获取基于 偏心率和转动惯量。此类还允许提取云的轴对齐和定向边界框。 但请记住,提取的 OBB 不是最小可能的边界框.
理论入门
特征提取方法的思路如下。 首先计算点云的协方差矩阵,提取其特征值和向量。 您可以认为生成的特征向量已归一化,并且始终形成右手坐标系 (主要特征向量表示 X 轴,次要矢量表示 Z 轴)。在下一步中,将进行迭代过程。 在每次迭代中,主要特征向量被旋转。旋转顺序始终相同,并且围绕另一个执行 特征向量,这提供了点云旋转的不变性。此后,我们将这个旋转的长向量称为当前轴。
计算每个电流轴的惯性矩。此外,电流轴还用于偏心率计算。 因此,当前矢量被视为平面的法向矢量,并将输入云投影到平面上。 之后计算所获得的投影的偏心率。
实现的类还提供了获取 AABB 和 OBB 的方法。定向边界框沿特征向量计算为 AABB。
代码
首先,本教程需要点云。这是屏幕截图上显示的那个。 接下来,您需要做的是在您喜欢的任何编辑器中创建一个文件,并在其中复制以下代码:moment_of_inertia.cpp