ransac 直线拟合 matlab,ransac拟合直线和平面(matlab版本)

参考资料:

主要思想:

迭代100次,找出内点内点最多的参数模型。

修改的问题:

原作者ransac拟合直线的参数以及ransac拟合平面的参数我认为有误,在这个基础上进行了修正。

1 ransac拟合直线

clc;clear all;close all;

%%%二维直线拟合

%%%生成随机数据

%内点

mu=[0 0]; %均值

S=[1 2.5;2.5 8]; %协方差

data1=mvnrnd(mu,S,200); %产生200个高斯分布数据

%外点

mu=[2 2];

S=[8 0;0 8];

data2=mvnrnd(mu,S,100); %产生100个噪声数据

%合并数据

data=[data1',data2'];

iter = 100;

%%% 绘制数据点

figure;plot(data(1,:),data(2,:),'o');hold on; % 显示数据点

number = size(data,2); % 总点数

bestParameter1=0; bestParameter2=0; % 最佳匹配的参数

sigma = 1;

pretotal=0; %符合拟合模型的数据的个数

for i=1:iter

%%% 随机选择两个点

idx = randperm(number,2);

sample = data(:,idx);

%

你可能感兴趣的:(ransac,直线拟合,matlab)