1.直线拟合
1.1最小二乘法拟合直线
曲线拟合中最基本和最常用的是直线拟合。设x和y之间的函数关系为:
y=a+bx
式中有两个待定参数,a代表截距,b代表斜率。对于等精度测量所得到的N组数据(xi,yi),i=1,2……,N,xi值被认为是准确的,所有的误差只看yi。下面利用最小二乘法把观测数据拟合为直线。
用最小二乘法估计参数时,要求观测值yi的偏差的加权平方和为最小。对于等精度观测值的直线拟合来说,可使下式的值最小:
1.2RANSAC算法拟合直线
ransac部分学习自https://www.bilibili.com/video/BV1fT411K7Yg?t=3876.1
2.拟合椭圆
2.1最小二乘法拟合椭圆
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://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。