• RANSEC算法


    移步:https://blog.csdn.net/u010128736/article/details/53422070


    clc;clear;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); 
    
         %%%拟合直线方程 y=kx+b
         line = zeros(1,3);
         x = sample(:, 1);
         y = sample(:, 2);
    
         k=(y(1)-y(2))/(x(1)-x(2));      %直线斜率
         b = y(1) - k*x(1);
         line = [k -1 b]
    
         mask=abs(line*[data; ones(1,size(data,2))]);    %求每个数据到拟合直线的距离
         total=sum(mask<sigma);              %计算数据距离直线小于一定阈值的数据的个数
    
         if total>pretotal            %找到符合拟合直线数据最多的拟合直线
             pretotal=total;
             bestline=line;          %找到最好的拟合直线
        end  
     end
     %显示符合最佳拟合的数据
    mask=abs(bestline*[data; ones(1,size(data,2))])<sigma;    
    hold on;
    k=1;
    for i=1:length(mask)
        if mask(i)
            inliers(1,k) = data(1,i);
            k=k+1;
            plot(data(1,i),data(2,i),'+');
        end
    end
    
     %%% 绘制最佳匹配曲线
     bestParameter1 = -bestline(1)/bestline(2);
     bestParameter2 = -bestline(3)/bestline(2);
     xAxis = min(inliers(1,:)):max(inliers(1,:));
     yAxis = bestParameter1*xAxis + bestParameter2;
     plot(xAxis,yAxis,'r-','LineWidth',2);
    title(['bestLine:  y =  ',num2str(bestParameter1),'x + ',num2str(bestParameter2)]);
  • 相关阅读:
    STM32学习中出现的错误
    原码 反码 补码 移码
    LiauidCrystal
    gpio 的配置
    ARM7探究
    导轨控制问题
    A4988驱动42步进电机
    arduino驱动oled
    计算机组成原理
    arduino basic issue
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/10768780.html
Copyright © 2020-2023  润新知