板的的英文译语怎么说-阿凡达片尾曲
2023年4月1日发(作者:paparazzi)
利⽤ransac算法拟合平⾯
1.前⾔
最近项⽬中遇到⼀个问牧童古诗的意思 题,⽼板给了⼀组数据然后要求获取其中处于同⼀个平⾯上的数据点的信息,很明显就是使⽤ransac算法进⾏处
理。
算法思想
这⾥我们使⽤⾃⼰的理解来说明下这个算法。
1.⾸先我们从给定的数据集中随机挑选⼏组数据获取⼀个模型(最好可以保证随机挑选的数据不重复)
2.将这个拟合⽅程作⽤于所有的数据,根据阈值区分出模型的内点和外点信息
3.重复多次上述操作,挑选出其中包含内点数⽬最多的模型
具体的关于ransac的算法说明可以参考
3.具体实现
3.1实现效果
3.2具体代码
SimulatePlane.m
%%利⽤ransac⽅法从⼀组三维数据点中找到处于同⼀个平⾯上的数据点
%@paramW3输⼊数据点4xN
%@return[W,id_best,plane_best,inliner,outliner]在同与中秋节有关的诗句 ⼀个平⾯上的物点,
%挑选的物点在原始数据集中的标号,最佳拟合平⾯表⽰形式(【a,b,c,d】:ax+by+cz+d=0,1X4),
%在平⾯上的内点数⽬,不再平⾯上的外点数⽬
%
function[W,id_best,plane_best,inliner_best,outliner_best]=Simu端午节作文400字优秀作文 latePlane(W3)
assert(size(W3,1)==4,\'pleasecheckyourinputforW3\')
iterations=0;
k=500;
W3_len=size(W3,2);
dis_limit_xishu=1.3;
dis_limit=0.015;
inliner_best=0;
ids_set=[];
whileiterations
%%随机4点获取平⾯参数
while1
ids=myrand4(1,W3_len);
%去重
if~ismember(ids,ids_set,\'rows\')
ids_set=[ids_set;ids];
break;
end
end
A=W3(:,ids)\';
A=W3(:,ids)\';
[声声慢李清照教案 uu,dd,vv]=svd(A);
plane=vv(:,end);
plane=plane./plane(end);
plane=plane\';
%%辽组词 计算内点
dis=abs(plane*W3);
%dis_limit_best=min(dis_limit_xishu*mean(dis),dis_limit_best);
%dis_limit_best=min(dis_limit_xishu*mean(dis),dis_limit);
dis_limit_best=dis_limit;
inliner=sum(dis
outliner=sum(dis>=dis_limit_best);
ifinliner>inliner_best
plane_best=plane;
inliner_best=inliner;
outliner_best=outliner;
end
iterations=iterations+1;
end
%%找到best_plane上的内点
dis=abs(plane_best*W3);
id不拘于时
_best=find(dis
W=W3(阁组词语 :,id_best);
end
function[ids]=myrand4(minlimit,maxlimit)
ids=[];
count=0;
whilecount<4
id=randi([minlimit,maxlimit],1,1);
ifismember(id,ids)
continue
end
ids=[ids,id];
count=count+1;
end
ids=sort(ids);
end
closeall
figure
plot3(W3(1,:),W3(2,:),W3(3,:),\'*\');
holdon
plot3(W(1,:),W(2,:),W(3,:),\'o\');
holdon
X=min(W3(1,:)):0.5:max(W3(1,:));
Y=min(W3(2,:)):0.5:max(W3(2,:));
[x,y]=meshgrid(X,Y);
z=-(plane(1)*x+plane(2)*y+plane(4))/plane(3);
surf(x,y,z)
holdoff
更多推荐
outliner是什么意思liner在线翻译读音例
发布评论