zoukankan      html  css  js  c++  java
  • PCL 平面模型分割

    点云操作中,平面的分割是经常遇到的问题,下面的例子就是如何利用PCL库提拟合出的参数,之后就可以过滤掉在平面附近的点云。

    #include <iostream>
    #include <pcl/io/pcd_io.h>
    #include <pcl/point_types.h>
    #include <pcl/ModelCoefficients.h>
    #include <pcl/filters/extract_indices.h>
    #include <pcl/sample_consensus/method_types.h>   //随机参数估计方法头文件
    #include <pcl/sample_consensus/model_types.h>   //模型定义头文件
    #include <pcl/segmentation/sac_segmentation.h>   //基于采样一致性分割的类的头文件
    
    //过滤之后的点云数据
    //创建分割对象 -- 检测平面参数
    /*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_PLANE); //设置模型类型,检测平面
    seg.setMethodType(pcl::SAC_RANSAC);      //设置方法【聚类或随机样本一致性】
    seg.setMaxIterations(1000);
    seg.setDistanceThreshold(0.01);
    seg.setInputCloud(cloud_ptr_gridfilter);
    seg.segment(*inliers, *coefficients);    //分割操作
    
    //显示模型的系数
    std::cerr << "Model coefficients: " << coefficients->values[0] << " "
    	      << coefficients->values[1] << " "
    	      << coefficients->values[2] << " "
    		<< coefficients->values[3] << std::endl;
    
    // Extract the planar inliers from the input cloud  
    pcl::ExtractIndices<pcl::PointXYZ> extract;
    extract.setInputCloud(cloud_ptr_gridfilter);
    extract.setIndices(inliers);
    //除去平面之外的数据
    extract.setNegative(true);
    extract.filter(*cloud_filtered);
    
    //进一步可利用点和平面的相对位置关系,进行筛选过滤掉平面附近的点
    

      

  • 相关阅读:
    压测 linux + jexus + mono + asp.net mvc
    System.TypeInitializationException: The type initializer for 'Mono.Unix.Native.Stdlib' threw an exception.
    IIS配置文件路径
    服务号(已认证)与订阅号(已认证)权限区别
    解决:jquery ajax非首次请求Server端获取cookie值中文乱码问题
    解决:新版火狐浏览器3d打不开
    java中的 json 处理包
    GroupId和ArtifactId
    java环境变量完整版
    POJ-3258
  • 原文地址:https://www.cnblogs.com/flyinggod/p/9135526.html
Copyright © 2011-2022 走看看