参考资料:
主要思想:
迭代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);
%