1.直线拟合

1.1最小二乘法拟合直线

曲线拟合中最基本和最常用的是直线拟合。设x和y之间的函数关系为:

               y=a+bx

式中有两个待定参数,a代表截距,b代表斜率。对于等精度测量所得到的N组数据(xi,yi),i=1,2……,N,xi值被认为是准确的,所有的误差只看yi。下面利用最小二乘法把观测数据拟合为直线。

用最小二乘法估计参数时,要求观测值yi的偏差的加权平方和为最小。对于等精度观测值的直线拟合来说,可使下式的值最小:
image.png

image.png

学习自http://t.csdn.cn/00jcd

1.2RANSAC算法拟合直线

image.png
image.png
image.png
image.png
image.png
ransac部分学习自https://www.bilibili.com/video/BV1fT411K7Yg?t=3876.1

2.拟合椭圆

2.1最小二乘法拟合椭圆

image.png
image.png
opencv c++有对应的api

    //椭圆拟合 contours[i]为拟合的点集
    RotatedRect box = fitEllipse(contours[i]);
    //存储 椭圆 参数
    // 中心坐标  box.center
    std::cout << "中心" << box.center << endl;
    //长轴  短轴
    std::cout << "长轴" << box.size.height << endl;
    std::cout << "短轴" << box.size.width << endl;
    //角度
    std::cout << "角度" << box.angle<< endl;

学习自http://t.csdn.cn/WAS45


胡子老爷爷
1 声望2 粉丝

种一棵树最好的时间是十年前,其次是现在!