我对PCL很新。 我试图检测一个物体下面的地板,以检查物体是否翻倒或是否水平放置。
我检查了API并找到了方法:pcl::PointCloud< T >::at
。
似乎我可以使用at来检测点的Z值。这是对的吗?
如果是,我很困惑,它应该如何运作。在数学上,一个点是无限小的。在我的扫描中,我看到点密度越小,它们在Z方向上越明显。 会不会总是回归一点?该值是最近物理点的平均值吗?
答案 0 :(得分:1)
在documentation中引用,pcl::PointCloud< T >::at
返回给定列和行信息(大致为X,Y)的单个点的信息(坐标加上其他数据,具体取决于点格式)深度图像)。因此,此方法仅适用于有组织的云。
不幸的是,并非每一点都是有效的观点。除非您过滤点云,否则您可能会发现无效的测量值(具有NaN组件的点)。这很正常,只需使用过滤器丢弃这些点。你的直觉是正确的,离传感器越远,点密度越小。
至于您要实现的目标,您应该查看PCL网站上的planar segmentation tutorial和Table Object Detector software by Nicolas Burrus。后者提取一个平面,并在其上面提取物体簇。