ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:92.39KB ,
资源ID:16497691      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16497691.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Ransac和圆拟合Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Ransac和圆拟合Word格式文档下载.docx

1、的及要求RANSAC即随机抽样一致。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法它有一定的概率得出一个合理的结果。借助MATLAB工具,通过RANSAC算法拟合圆,理解其原理,分析它的优点与确定。实验仪器设备实验设备为一台装有win10系统的PC,matlab2015b软件。实验原理 利用圆的定义,圆是平面内到定点F1、F2的距离之和等于常数(大于|F1F2|)的动点P的轨迹,F1、F2称为圆的两个焦点。其数学表达式为:|PF1|+|PF2|=2a(2a|F1F2|)。选取3个点,2个焦点,1个过圆的点,就能确定圆。实验内容有一个模型适应于假设

2、的局内点,即所有的未知参数都能从假设的局内点计算得出。 用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。然后,用所有假设的局内点去重新估计模型(譬如使用最小二乘法),因为它仅仅被初始的假设局内点估计过。最后,通过估计局内点与模型的错误率来评估模型。上述过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。实验步骤及方法第一步:生成随机点,本实验随机点的数量设置为300;第二步:参数的初始化,设置圆长短轴,生成圆模型;第三步:由圆定义,查找符合圆模型

3、的点;第四步:画出拟合结果;实验数据matlab程序代码:clc;clear;% 生成 带噪声的圆% 参数初始化g_NumOfPoints = 500; % 点数g_ErrPointPart = 0.5; % 噪声g_NormDistrVar = 3; % 标准偏差a=20;b=20; %长轴短轴angle=60; %倾斜角% 圆生成beta = angle * (pi / 180);alpha = linspace(0, 360, g_NumOfPoints) .* (pi / 180);X = (a * cos(alpha) * cos(beta)- b * sin(alpha) * si

4、n(beta) )+wgn(1,length(alpha),g_NormDistrVar2,linear);Y = (a * cos(alpha) * sin(beta)+ b * sin(alpha) * cos(beta) )+wgn(1,length(alpha),g_NormDistrVar2,Data=X;Y;plot(Data(1, :), Data(2, :), ., TagDATAhold on;% RANSAC圆拟合%圆一般方程:Ax2+Bxy+Cy2+Dx+Ey+F=0%F=(p,x)p(1)*x(:,1).2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2)

5、.2+p(4)*x(:,1)+p(5)% 参数初始化nSampLen = 2; %设定模型所依据的点数nDataLen = size(Data, 2); %数据长度nIter = 50; %最大循环次数dThreshold = 2; %残差阈值nMaxInlyerCount=-1; %点数下限A=zeros(2 1);%B=zeros(2 1);P=zeros(2 1);% 主循环for i = 1:nIter SampleMask = zeros(1 nDataLen); while sum( SampleMask ) = nSampLen % =不等于 ind = ceil(nDataLe

6、n .* rand(1, nSampLen - sum(SampleMask); %抽样,选取nSampLen个不同的点 SampleMask(ind) = 1; end Sample = find( SampleMask ); %找出非零元素的索引值,即建立模型的点 % 建立模型,存储建模需要的坐标点,焦点和过圆的一个点 %圆定义方程:到两定点之间距离和为常数 A(:,1)=Data(:,ind(1); %圆点 % B(:,ind(2); %焦点 P(: %圆上一点 DIST= sqrt(P(1,1)-A(1,1).2+(P(2,1)-A(2,1).2); %DIST = (P(1,1) -

7、 A(1,1).2) + (P(2,1)-A(2,1).2); xx=; nCurInlyerCount=0; %初始化点数为0个 % 是否符合模型? for k=1:g_NumOfPoints CurModel=A(1,1) A(2,1) DIST ; pdist=(Data(1,k)-A(1,1).2+(Data(2,k)-A(2,1).2); CurMask =(abs(DIST-pdist) nMaxInlyerCount %符合模型的点数最多的模型即为最佳模型 nMaxInlyerCount = nCurInlyerCount; Ellipse_mask = CurMask; Ell

8、ipse_model = CurModel; Ellipse_points = A P; Ellipse_x =xx;end% 由符合点拟合圆 x2+y2+Dx+Ey+F=0% F=(p,x)p(1)*x(:,1)+p(5)*x(:,2)+p(6);p(1)=1;p(2)=0;p(3)=1;F=(p,x)p(1)*x(:,1).2+p(3)*x(:,2).2 +p(2)*x(:,2)+p(4)*x(:p0=1 1 1 1 1 1;x=Ellipse_x;pr=nlinfit(x,zeros(size(x,1),1),F,p0); % 拟合系数,最小二乘方法xmin=min(x(:,1);xma

9、x=max(x(:ymin=min(x(:,2);ymax=max(x(:% 画点作图plot(Ellipse_points(1,:),Ellipse_points(2,:),r*plot(Ellipse_x(1,:),Ellipse_x(2,:yoezplot(x,y)F(pr,x,y),-1+xmin,1+xmax,-1+ymin,1+ymax);title(RANSAC圆拟合legend(样本点,抽取点符合点拟合曲线)实验数据分析及处理示例图片RANSAC拟合情况:通过在MATLAB上仿真,得到RANSAC圆拟合图,如下所示: 图1 第一次运行时RANSAC圆拟合图图2 第二次运行时RA

10、NSAC圆拟合图图3 第三次运行时RANSAC圆拟合图实验结果分析1.图1结果分析如图1所示,随机生成了300个蓝色的点,其中局内点21个,即黄色点,局外点190个,以抽样点为圆心,拟合了一个圆。 2. 图2结果分析如图2所示,其中局内点11个,局外点200个,得到较好的拟合结果。3.图3结果分析如图3所示,其中局内点14个,局外点200个,得到较好的拟合结果。4.图1、图2、图3横向对比分析图一、图二、图三,都是经过多次拟合才拟合成功。可能的原因是样本点是随机产生的,不能确定每次产生的样本点都能成功的拟合。5.RANSAC拟合原理和流程图建立模型时利用圆的定义方程:dist(P,A)+dis

11、t(P,B)=DIST,其中P为圆上一点,A为圆心。随机选取三点A,P构建圆模型,计算每个点到此两焦点的距离和与DIST的差值,差值小于一定阈值时的点为符合模型的点,点数最多时的模型即为最佳圆模型,再根据符合条件的点,利用圆一般方程x2+y2+Dx+Ey+F=0和得到符合点进行系数拟合,根据函数式画出最终拟合圆。实验总结RANSAC本身就是一个不确定的算法,它通过不断地迭代估计出模型的参数,带有一定的随机性,不能确定地拟合圆,因而RANSAC算法稳定性较差。另外,它计算参数的迭代次数没有上限,如果设置上限,得到的结果可能不是最优的结果,甚至可能得到错误的结果。但RANSAC也有明显的优点,它能从包含大量局外点的数据集中估计出高精度的参数。批改意见签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1