PCL与提取平面相关的函数
实际操作提取平面
首先是导入模型,使用PCDReader函数
pcl::PointCloud<pcl::PointXYZ>::Ptr myCloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PCDReader reader;
reader.read(model_path+model_name, *myCloud);
然后是使用分割器通过一些具体操作对点云进行分割。
//创建一个模型参数对象,用于记录结果
pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients);
//inliers表示误差能容忍的点 记录的是点云的序号
pcl::PointIndices::Ptr inliers (new pcl::PointIndices);
// 创建一个分割器
pcl::SACSegmentation<pcl::PointXYZ> seg;
// Optional,这个设置可以选定结果平面展示的点是分割掉的点还是分割剩下的点。
seg.setOptimizeCoefficients (true);
// Mandatory-设置目标几何形状
seg.setModelType (pcl::SACMODEL_PLANE);
//分割方法:随机采样法
seg.setMethodType (pcl::SAC_RANSAC);
//设置误差容忍范围,也就是我说过的阈值
seg.setDistanceThreshold (0.01);
//输入点云
seg.setInputCloud (myCloud);
//分割点云
seg.segment (*inliers, *coefficients);
这里似乎没有像matlab一样的直观操作的分割。