我正在使用SACSegmentation from PCL segmentation module来过滤掉地平面。
该方法适合3D物体的前表面,而不是如下面的第二个pcd文件所示安装地平面。
任何建议我应该怎样做才能适应和过滤地平面点。
提前致谢。
pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients);
pcl::SACSegmentation<pcl::PointXYZ> segmentation;
segmentation.setInputCloud(cloudAll);
segmentation.setOptimizeCoefficients(true);
segmentation.setModelType(pcl::SACMODEL_PLANE );
segmentation.setMethodType(pcl::SAC_RANSAC );
segmentation.setDistanceThreshold(20.20);
答案 0 :(得分:2)
问题在于Ransac找到了适合更高点数的平面,点云中的点对应于前表面。
如果您对场景和坐标系有一定的了解,那么您可以轻松解决问题,如下所示:
使用PCL的PassThrough filter仅选择高于某个y
值的点云的点。
这里我假设y
代表给定点云坐标系中的垂直轴。
此阈值应基于您对场景尺寸的了解。
根据您的点云,您应该使用y > 200
选择点。
你的观点云:
仅选择y > 200
点: