三维实际点到点云,最后ransac拟合平面

//---头文件---
#include <pcl/ModelCoefficients.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/sample_consensus/method_types.h>   //随机参数估计方法头文件
#include <pcl/sample_consensus/model_types.h>   //模型定义头文件
#include <pcl/segmentation/sac_segmentation.h>   //基于采样一致性分割的类的头文件


        pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_new_build(new pcl::PointCloud<pcl::PointXYZ>);
        cloud_new_build->width = scene_xyz.size();
        cloud_new_build->height = 1;
        cloud_new_build->is_dense = false;
        cloud_new_build->resize(cloud_new_build->width * cloud_new_build->height);
    
        // 生成平面点云数据
        size_t num = cloud_new_build->size();
        for (size_t i = 0 ; i < num ; ++i)
        {
            cloud_new_build->points[i].x = scene_xyz[i].x();
            cloud_new_build->points[i].y = scene_xyz[i].y();
            cloud_new_build->points[i].z = scene_xyz[i].z();
        }


        //创建一个模型参数对象,用于记录结果
        pcl::ModelCoefficients::Ptr coef (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 (cloud_new_build);
        //分割点云
        seg.segment (*inliers, *coef);
    
        //显示模型的系数
          std::cerr << "Model coefficients: " << coef->values[0] << " "
                                                        <<coef->values[1] << " "
                                                        <<coef->values[2] << " "
                                                        <<coef->values[3] <<std::endl;
    //--需要对坐标值进行矫正--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyd__

你的打赏和鼓励我会珍惜!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值