c++椭圆最小二乘法原理_最小二乘法拟合圆公式推导及其实现
https://blog.csdn.net/Jacky_Ponder/article/details/70314919
1.1最小二乘拟合圆介绍与推导
最小二乘法(least squares analysis)是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。最小二乘法是用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小来寻找一组数据的最佳匹配函数的计算方法,最小二乘法通常用于曲线拟合 (least squares fitting) 。最小二乘圆拟合方法是一种基于统计的检测方法,即便是图像中圆形目标受光照强度不均等因素的影响而产生边缘缺失,也不会影响圆心的定位和半径的检测,若边缘定位精确轮廓清晰,最小二乘法可实现亚像素级别的精确拟合定位。
这里有拟合圆曲线的公式推导过程和vc实现。
1.2VC实现的代码
[cpp] view plain copy
void CViewActionImageTool::LeastSquaresFitting()
{
if (m_nNum<3)
{
return;
}
int i=0;
double X1=0;
double Y1=0;
double X2=0;
double Y2=0;
double X3=0;
double Y3=0;
double X1Y1=0;
double X1Y2=0;
double X2Y1=0;
for (i=0;i
{
X1 = X1 + m_points[i].x;
Y1 = Y1 + m_points[i].y;
X2 = X2 + m_points[i].x*m_points[i].x;
Y2 = Y2 + m_points[i].y*m_points[i].y;
X3 = X3 + m_points[i].x*m_points[i].x*m_points[i].x;
Y3 = Y3 + m_points[i].y*m_points[i].y*m_points[i].y;
X1Y1 = X1Y1 + m_points[i].x*m_points[i].y;
X1Y2 = X1Y2 + m_points[i].x*m_points[i].y*m_points[i].y;
X2Y1 = X2Y1 + m_points[i].x*m_points[i].x*m_points[i].y;
}
double C,D,E,G,H,N;
double a,b,c;
N = m_nNum;
C = N*X2 - X1*X1;
D = N*X1Y1 - X1*Y1;
E = N*X3 + N*X1Y2 - (X2+Y2)*X1;
G = N*Y2 - Y1*Y1;
H = N*X2Y1 + N*Y3 - (X2+Y2)*Y1;
a = (H*D-E*G)/(C*G-D*D);
b = (H*C-E*D)/(D*D-G*C);
c = -(a*X1 + b*Y1 + X2 + Y2)/N;
double A,B,R;
A = a/(-2);
B = b/(-2);
R = sqrt(a*a+b*b-4*c)/2;
m_fCenterX = A;
m_fCenterY = B;
m_fRadius = R;
return;
}
---------------------
作者:Jacky_Ponder
来源:CSDN
原文:https://blog.csdn.net/Jacky_Ponder/article/details/70314919
版权声明:本文为博主原创文章,转载请附上博文链接!
c++椭圆最小二乘法原理_最小二乘法拟合圆公式推导及其实现相关推荐
- 最小二乘法拟合圆公式推导及vc实现
最小二乘法(least squares analysis)是一种 数学 优化 技术,它通过 最小化 误差 的平方和找到一组数据的最佳 函数 匹配. 最小二乘法是用最简的方法求得一些绝对不可知的真值,而 ...
- 最小二乘法拟合圆公式推导及vc实现[r]
最小二乘法(least squares analysis)是一种 数学 优化 技术,它通过 最小化 误差 的平方和找到一组数据的最佳 函数 匹配. 最小二乘法是用最简的方法求得一些绝对不可知的真值,而 ...
- 最小二乘法拟合圆公式推导及其实现
1.1最小二乘拟合圆介绍与推导 最小二乘法(least squares analysis)是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配.最小二乘法是用最简的方法求得一些绝对不 ...
- 三坐标最小二乘法原理_全最小二乘法在三坐标测量中的应用
第 3O卷第 4期 2008年 O7月 武 汉 工 程 大 学 学 报 J. Wuhan Inst. Tech. Vo1.30 NO.4 Ju1. 2008 文章编号 :1674-2869(2008) ...
- 最小二乘法拟合圆c语言,最小二乘法拟合圆公式推导及其实现
https://blog.csdn.net/Jacky_Ponder/article/details/70314919 1.1最小二乘拟合圆介绍与推导 最小二乘法(least squares anal ...
- 曲线拟合最小二乘法优缺点_最小二乘法的优缺点
展开全部 一.最小二乘法的优点:32313133353236313431303231363533e59b9ee7ad9431333431363663 1.最小二乘法能通过最小化误差的平方和寻找数据的最 ...
- c++椭圆最小二乘法原理_利用最小二乘法拟合椭圆方程的理论推导,附有matlab代码...
为了很好的进行椭圆方程拟合,本文先对椭圆基本知识进行复习,后进行非标准椭圆方程拟合公式推导,最后有matlab代码的实现. 1. 用最小二乘法做椭圆拟合 1.1. 椭圆标准方程 对椭圆印象最深的就是高 ...
- 两阶段最小二乘法原理_两阶段最小二乘法.PPT
估计是逐个方程展开.以EViews附带的工作文件cs.wf为例.工作文件界面为: 其中CS(人均消费).INV(投资)和GDP为内生变量.Gov_net为外生变量. 建立模型如下: cs=c(1)+c ...
- c++椭圆最小二乘法原理_c++ 椭圆拟合之最小二乘法(图像处理)
椭圆拟合之最小二乘法 原理:可能以后的篇幅再详细写了, 代码: QImage inputImage :输入图像: float ellipse : 输出椭圆的各个参数 bool Vertical : 是 ...
最新文章
- wireshark从入门到精通(协议排错安全篇)4
- 学习笔记98—从矩阵坐标转换至MNI坐标
- Qt Creator设置调试器
- mysql数据库商业版与社区版的区别
- 给Android SDK设置环境变量
- 《软件需求分析》阅读笔记3
- restful风格个人理解
- 怎么在微云服务器找一个文件,微云文件在哪里打开_怎么快速找到微云文件
- skyeye linux qt,在ARM9上安装Linux,利用SkyEye模拟器及U-BOOT引导
- redis数据库的设计实例
- Windows 上的网络通信编程
- miui10.2.2 或以上的小米手机上照片旋转问题及解决
- ajax的blur调用,jQuery事件blur()方法的使用实例讲解
- 2020初升高暑假之末有感
- 水经注在后浅村地形测绘图中的套合应用案例
- ib物理hl难吗?ib物理考点避坑指南
- tigergraph_TigerGraph评论:专为深度分析而设计的图形数据库
- 缓存雪崩(Redis)
- [NOI2005] 瑰丽华尔兹
- swif学习之自定义运算符