光斑质心检测进行图像卷积之后,需对计算结果矩阵进行曲线拟合,以求出质心的亚像素坐标。
拟合的目的在于找出图像中灰度值最高的亚像素点的位置,Xmax,Ymax;
例:对图像中相邻的三点(x1 , gray1)、(x2 , gray2)、(x3 , gray3)进行拟合,x代表横坐标值,gray代表该位置的灰度值,gray2是检测图像的最大灰度值(也就是说质心就在(x2 , gray2)这个点附近)。同理,对y坐标进行拟合类似。
方法一:抛物线拟合
Xmax = X2 - 0.5 * (gray3 - gray1) /(gray3 + gray1 - 2 gray2)
方法二:高斯拟合(高斯公式为 f(x) = a1 * exp( - ((x - b1) / c1 )^2) )
b1 = ( (x3 * x3 - x1 * x1) * ln(gray1 / gray2) - (x2 * x2 - x1 * x1) * ln(gray1 / gray3) ) / ( 2(x3 - x1) * ln(gray1 / gray2) - 2(x2 - x1) * ln(gray1 / gray3) ) ;
c1 = sqrt( (x1 + x2 - 2b1 ) / (x2 - x1 ) / ln(gray1 / gray2) );
a1 = y1 / exp( - ((x1 - b1) / c1) * ((x1 - b1) / c1) );
Xmax = b1;
这是个人计算并验证过的,如有误,欢迎讨论(只求b1即可)
方法三:一般拟合
Xmax = (gray1 * x1 + gray2 * x2 + gray3 * x3)/(gray1 + gray2 + gray3)