从零开始调试ROS-PCL库(2):提取平面

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一样的直观操作的分割。


版权声明:本文为weixin_41600408原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。