三维精密测量(一) 一种求圆标志中心亚像素级边缘标定算法

一、边缘细定位边缘

1 参数拟合法的基本原理

        CCD是光积分器件,它以固定大小的面积在固定的时间间隔内对投影其感光面上的光强进行积分,输出的结果就是图像的灰度值。由于CCD的积分时间和面积是相对固定的,所以它的输出灰度值只与感光面上光强分布有关。对于某一像素的灰度值输出可以表示为

${\rm{f}}\left( {{\rm{i}},{\rm{j}}} \right) = \mathop \smallint \limits_{j - 0.5}^{j + 0.5} \mathop \smallint \limits_{j - 0.5}^{j + 0.5} g\left( {x,y} \right)dxdy$   (1)

        式1中,g(x,y)是连续图像的光强分布。从式(1)可以看出,f(i,j)是像素感光面上各部分光强综合作用的结果,这就是方形孔径采样定理,采样结果是以灰度为数值的离散矩阵。

        由于光学元器件的卷积作用以及光学衍射作用,在物空间剧变的灰度值经光学成像成为渐变的形式。边缘在图像中表征为一种灰度分布,图像边缘灰度值变化应当是高斯分布,灰度差最大的点为真实边缘点,即:高斯曲线的顶点位置为真实边缘点位置。高斯曲线的表达式为

${\rm{y}} = \frac{1}{{\sqrt {2\pi } \sigma }}{e^{\left( {\frac{{ - {{\left( {x - \mu } \right)}^2}}}{{2{\sigma ^2}}}} \right)}}$    (2)

        式中,μ为均值,σ为标准差。

        为方便计算,对式(2)两边取对数得

${\rm{lny}} =  - \frac{{{{\left( {x - \mu } \right)}^2}}}{{2{\sigma ^2}}} + ln\frac{1}{{\sqrt {2\pi } \sigma }}$    (3)

        令y* = lny,则式(3)转化为

y*=Ax2+Bx+C   (3.1)

        根据方形孔径采样定理,像素灰度差值为

${{\rm{y}}^{\rm{*}}}\left( {\rm{n}} \right) = \mathop \smallint \limits_{n - 0.5}^{n + 0.5} \left( {{\rm{A}}{{\rm{x}}^2} + {\rm{Bx}} + {\rm{C}}} \right)dx$   (4)

        令灰度差值最大的点的序号为0,灰度差值表示为f0,左右相邻的四个点的序号分别表示为-2,-1,1,和2,相应的值表示为f-2,f-1,f1和f2,根据式4可以求出5个像素输出的灰度差分别为

${{\rm{f}}_{ - 2}} = \mathop \smallint \limits_{ - 2.5}^{ - 1.5} \left( {{\rm{A}}{{\rm{x}}^2} + {\rm{Bx}} + {\rm{C}}} \right)dx = \frac{{49}}{{12}}A - 2B + C$    (5)

        同理可得

${{\rm{f}}_{ - 1}} = \frac{{13}}{{12}}A - B + C$   (6)

${{\rm{f}}_0} = \frac{1}{{12}}A + C$   (7)

${{\rm{f}}_1} = \frac{{13}}{{12}}A + B + C$    (8)

${{\rm{f}}_2} = \frac{{49}}{{12}} + 2B + C$    (9)

        根据式(5)~(9),联立方程组,用最小二乘法求得A、B、C,再将A、B、C的值代入抛物线顶点坐标值x=-B/2A,得到抛物线的顶点坐标为

${\rm{x}} = \frac{{ - 0.2{f_{ - 2}} - 0.1{f_{ - 2}} + 0.1{f_1} - 0.2{f_2}}}{{2\left( {0.1429{f_{ - 2}} - 0.074{f_{ - 2}} - 0.1429{f_0} - 0.0714{f_1} + 0.1429{f_2}} \right)}}$    (10)

        注意到由式(3)到式(3.1),y经过了取对数的操作,因此,像素灰度插值也应取对数,所以亚像素级边缘提取公式为

${{\rm{x}}_g} = \frac{{ - 0.2ln{f_{ - 2}} - 0.1ln{f_{ - 2}} + 0.1ln{f_1} - 0.2ln{f_2}}}{{2\left( {0.1429ln{f_{ - 2}} - 0.074ln{f_{ - 2}} - 0.1429ln{f_0} - 0.0714ln{f_1} + 0.1429ln{f_2}} \right)}}$    (11)

        在像素级边缘定位后,取得该点梯度方向的邻近点的灰度值做差分处理,代入式(11)即可求得亚像素级精度的边缘点。