数字图像处理算法及原理(七):最小二乘法拟合圆
最小二乘法拟合圆
最小二乘法(least squares analysis)是一种 数学 优化 技术,它通过 最小化 误差 的平方和找到一组数据的最佳 函数 匹配。 最小二乘法是用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小。 最小二乘法通常用于 曲线拟合 (least squares fitting) 。这里有 拟合圆曲线 的公式推导过程 和 matlab实现。
下面是matlab代码:
比如用其他算法(如霍夫、链码、形态学等)得到了某个圆或者近似圆的轮廓,想要将其标准化。
%%此程序用于对二值图像获得的圆形边缘进行圆拟合,计算出圆心坐标及半径
%最小二乘法进行曲线拟合
function [xc,yc,R] = cirfit(x,y)%x、y为坐标点,都是一组向量。如x=[x1,x2,x3,...,xn]
n=length(x);
xx=x.*x;
yy=y.*y;
xy=x.*y;
A=[sum(x) sum(y) n;sum(xy) sum(yy)...
sum(y);sum(xx) sum(xy) sum(x)];
B=[-sum(xx+yy) ; -sum(xx.*y+yy.*y) ; -sum(xx.*x+xy.*y)];
a=A\B;
xc = -0.5*a(1);
yc = -0.5*a(2);
R = sqrt((a(1)^2+a(2)^2)/4-a(3));
end
%结束后返回的值便是圆心坐标及半径