在第三步我们求出了直线的点向式方程,即:
//提取两条直线
void linetwo(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, std::vector<pcl::ModelCoefficients> a)
{//a是存储的拟合的直线的模型系数
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_p(new pcl::PointCloud<pcl::PointXYZ>), cloud_f(new pcl::PointCloud<pcl::PointXYZ>);
//pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients());//创建一个模型参数对象,用于记录结果
pcl::PointIndices::Ptr inliers(new pcl::PointIndices());
pcl::SACSegmentation<pcl::PointXYZ> seg; //创建分割对象
seg.setOptimizeCoefficients(true); //设置对估计模型参数进行优化处理
seg.setModelType(pcl::SACMODEL_LINE); //设置分割模型类别// Mandatory-设置目标几何形状
seg.setMethodType(pcl::SAC_RANSAC); //设置用哪个随机参数估计方法//分割方法:随机采样法
seg.setMaxIterations(1000); //设置最大迭代次数
seg.setDistanceThreshold(0.003); //判断是否为模型内点的距离阀值//设置误差容忍范围,也就是之前说过的阈值