0

我正在尝试使用 PCL 在“非地面”对象周围创建边界框并测量其尺寸。

我的管道如下所示:

获取 XYZ 云点 → 通过 → 体素网格 → 去除统计轮廓 → 欧几里得聚类 → 惯性矩估计 → 一些用于获取长度、宽度和高度的简单数学。

但我遇到了问题:

在此处输入图像描述

如您所见,地面和物体之间有一个“空白”空间,因为没有关于“内部”点的信息。这就是为什么我不能在我的对象周围创建适当的 AABB。

所以,我的问题是:我如何“重建”这个表面以在我的对象周围创建适当的 AABB?就像它站在地面上而不是飞行?我在 PCL 中很新,可能我错过了一些微不足道的东西吗?

4

1 回答 1

0

假设您的对象始终站在平坦的地面上,我建议您通过以下方式解决问题。首先,找出地平面的系数。其次,将对象点投影到该平面上以获得对象的“足迹”。最后,扩展您的边界框以包含投影点。

您需要的算法在 PCL 中可用。对于平面拟合,请查看教程。对于点投影,请使用以下代码段:

pcl::ProjectInliers<pcl::PointXYZ> proj;
proj.setModelType (pcl::SACMODEL_PLANE);
proj.setInputCloud (cloud_object);
proj.setModelCoefficients (plane_coefficients);
proj.filter (*cloud_projected);
于 2018-03-23T16:09:14.193 回答