请选择 进入手机版 | 继续访问电脑版

点云PCL平面检测及删除SampleConsensusModelPerpendicularPlane

[复制链接]
密战 发表于 2021-1-1 10:30:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
pcl::SampleConsensusModelPerpendicularPlane

代码
  1. #include "pcllib/pcllib.h"#include #include int main(int argc, char** argv){    pointcloud::Ptr cloud_filtered(new pointcloud);                       pointcloud::Ptr scene(new pointcloud);                      pcl::io::loadPCDFile("original_data//13.pcd", *scene);    PCLLib pcluse;    pcluse.voxelFliter(scene, cloud_filtered);    pcl::PointIndices::Ptr tmpinliers(new pcl::PointIndices);    double distance = 50, degree = 60, max = 10000;    pcl::PointCloud::Ptr Ncloud_ground_plane(new pcl::PointCloud());    Eigen::VectorXf coefficients;    pcl::SampleConsensusModelPerpendicularPlane::Ptr model(new pcl::SampleConsensusModelPerpendicularPlane(cloud_filtered));    model->setAxis(Eigen::Vector3f(0.0, 1.0, 0.0));        //setAxis用于设置所搜索平面垂直的轴    model->setEpsAngle(pcl::deg2rad(degree));                //setEpsAngle用于设置待检测的平面模子和上述轴的最大角度    pcl::RandomSampleConsensus ransac(model);    ransac.setMaxIterations(max);    ransac.setDistanceThreshold(distance);    ransac.computeModel();    ransac.getInliers(tmpinliers->indices);    ransac.getModelCoefficients(coefficients);    pcl::ExtractIndices extract;    extract.setInputCloud(cloud_filtered);    extract.setIndices(tmpinliers);    extract.setNegative(true);    extract.filter(*Ncloud_ground_plane);    *cloud_filtered = *Ncloud_ground_plane;    std::cout addPointCloud(cloud_filtered, "target_cloud_v1");    while (!view->wasStopped())    {        view->spinOnce(100);            pcl_sleep(0.01);    }
复制代码
实验结果


来源:https://blog.csdn.net/hai_fellow_Z/article/details/111927912
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )