当前位置: 首页 > news >正文

江苏建设教育网站中央人民政府

江苏建设教育网站,中央人民政府,高端网站开发培训价格,网站建设经费预算随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法来从一系列包含有离异值的数据中计算数学模型参数的方法。 RANSAC算法本质上由两步组成,不断进行循环: 从输入数据中随机选出能组成数学模型的最小数目的元素,使用这些元素…

随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法来从一系列包含有离异值的数据中计算数学模型参数的方法。
RANSAC算法本质上由两步组成,不断进行循环:
从输入数据中随机选出能组成数学模型的最小数目的元素,使用这些元素计算出相应模型的参数。选出的这些元素数目是能决定模型参数的最少的。
检查所有数据中有哪些元素能符合第一步得到的模型。超过错误阈值的元素认为是离群值(outlier),小于错误阈值的元素认为是内部点(inlier)。
这个过程重复多次,选出包含点最多的模型即得到最后的结果。
RANSAC具体到空间点云中拟合平面:
1、从点云中随机选取三个点。
2、由这三个点组成一个平面。
3、计算所有其他点到该平面的距离,如果小于阈值T,就认为是处在同一个平面的点。
3、如果处在同一个平面的点超过n个,就保存下这个平面,并将处在这个平面上的点都标记为已匹配。
4、终止的条件是迭代N次后找到的平面小于n个点,或者找不到三个未标记的点。
下面是一个使用PCL中的Ransac进行平面拟合的示例代码:

#include <pcl/io/pcd_io.h>
#include <pcl/sample_consensus/ransac.h>
#include <pcl/sample_consensus/sac_model_plane.h> // 拟合平面
#include <pcl/visualization/pcl_visualizer.h>using namespace std;int main()
{//-----------------------------读取点云----------------------------pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);if (pcl::io::loadPCDFile("../../data/example4.pcd", *cloud) < 0){PCL_ERROR("点云读取失败!\n");return -1;}//--------------------------RANSAC拟合平面--------------------------pcl::SampleConsensusModelPlane<pcl::PointXYZ>::Ptr model_plane(new pcl::SampleConsensusModelPlane<pcl::PointXYZ>(cloud));pcl::RandomSampleConsensus<pcl::PointXYZ> ransac(model_plane);ransac.setDistanceThreshold(0.2);	//设置距离阈值,与平面距离小于0.1的点作为内点ransac.computeModel();				//执行模型估计//-------------------------根据索引提取内点--------------------------pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_plane(new pcl::PointCloud<pcl::PointXYZ>);vector<int> inliers;				//存储内点索引的容器ransac.getInliers(inliers);			//提取内点索引pcl::copyPointCloud<pcl::PointXYZ>(*cloud, inliers, *cloud_plane);//----------------------------输出模型参数---------------------------Eigen::VectorXf coefficient;ransac.getModelCoefficients(coefficient);cout << "平面方程为:\n" << coefficient[0] << "x + " << coefficient[1] << "y + " << coefficient[2] << "z + "<< coefficient[3] << " = 0" << endl;//-----------------------------结果可视化----------------------------pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("拟合结果"));viewer->addPointCloud<pcl::PointXYZ>(cloud, "cloud");viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 1, 1, 1, "cloud");viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud");viewer->addPointCloud<pcl::PointXYZ>(cloud_plane, "plane");viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_COLOR, 0, 1, 0, "plane");viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "plane");while (!viewer->wasStopped()){viewer->spinOnce(100);}return 0;
}

这段代码从pcd点云中提取出平面,如下图所示,其中绿色点为平面点,白色点为噪点。
在这里插入图片描述

本系列全部代码的链接

http://www.ritt.cn/news/12147.html

相关文章:

  • 上海松江网站建设公司地推app
  • 系统之家官网seo教程论坛
  • 外贸多语言网站建设中国企业培训网
  • 网站建设及推广外包百度上做广告怎么收费
  • wordpress长文章自动分页windows优化大师如何卸载
  • 兰州网站建设开发阿里指数
  • 网站建设一般做什么泰安seo培训
  • 网站建设岗位要求2023年最新时政热点
  • 网站开发肇庆培训外贸seo公司
  • 做网站 分工美国婚恋网站排名
  • 网站建设中古典武侠中文字幕广州网站优化服务商
  • 网站建设不包括以下哪个阶段seo站内优化和站外优化
  • 网站替换图片怎么做信息流广告优秀案例
  • 在线旅游网站建设方案企业宣传软文
  • 新疆做网站首选成人技能培训班有哪些
  • 广元建设网站要多少钱东莞网络公司电话
  • 做一件代发的网站百度官方网站登录
  • 做网站需要资料如何外贸推广
  • 江苏建设学院惠州seo招聘
  • 武汉网站建设jw100alexa排名查询
  • 绵阳网站建设哪家好下载地图导航手机版免流量费用
  • 青岛网站建设seo百度云网盘搜索引擎入口
  • 小程序建站哪家好免费网站入口在哪
  • wordpress开发销售系统什么叫seo网络推广
  • 文化管 网站建设规划福建seo
  • 整站seo定制宁波网站推广方式
  • 交互设计师主要是做什么的呢seo编辑是干什么的
  • wordpress手机导航三横拦seo优化的内容有哪些
  • 电商网站如何做多语言架构seo双标题软件
  • 江门移动网站建设报价网络服务合同纠纷