最小二乘法曲线拟合(代码注释)

本文介绍如何使用最小二乘法进行曲线拟合,通过拟合样条曲线计算点到曲线的欧拉距离,判断并去除噪点。首先确定曲线类型,如直线、二次曲线、对数函数或幂函数等,通过比较方差找到最佳拟合。
摘要由CSDN通过智能技术生成

    最小二乘使所有点到曲线的方差最小.利用最小二乘对扫描线上的所有数据点进行拟合,得到一条样条曲线,然后逐点计算每一个点Pi到样条曲线的欧拉距离ei(即点到曲线的最短距离),ε是距离的阈值,事先给定,如果ei≥ε,则将该点判断为噪点.

该方法最重要的事先拟合样条曲线。

确定曲线类型的方法:根据已知数据点类型初步确定曲线类型,经验观察初步尝试拟合函数类型.

曲线类型选择:直线,二次曲线,三次曲线,对数函数拟合,幂函数拟合,直至方差最小。

直线:f(X1) = aX1 + b;

二次曲线:f(X1) = aX12 + bX1 + c;

对数函数:f(X1) = a + b log(X1);

幂函数: f(X1)  = aX1b

​​​​​​​#include <iostream>
#include <opencv2/opencv.hpp>
#include <Eigen/Core>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen;

int main(int argc, char **argv)
{
  double ar = 1.0, br = 2.0, cr = 1.0;         // 真实参数值
  double ae = 2.0, be = -1.0, ce = 5.0;        // 估计参数值
  int N = 100;               
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值