主权项 |
一种二维高斯分布光斑图像中心快速高精度定位方法,其特征在于包含如下步骤:1)利用CCD相机对一个或多个光学目标进行离焦拍摄,获取符合二维高斯分布的光斑图像;2)对图像二值化后进行边界查找,根据形状和大小对封闭边界区域进行筛选,初步分割出图像中的多个光斑,并对各光斑进行编号;3)对于当前光斑,利用步骤2)中得到的光斑边界计算其外接正方形的边长L,令l等于L/2的整数部分,确定光斑窗口大小为(2l+1)×(2l+1);4)在(2l+1)×(2l+1)的窗口内确定相应光斑的整像素坐标([xc],[yc]),其计算公式为: <mrow> <mo>[</mo> <msub> <mi>x</mi> <mi>c</mi> </msub> <mo>]</mo> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi>max</mi> </mrow> <msub> <mi>x</mi> <mi>i</mi> </msub> </munder> <mrow> <mo>(</mo> <munderover> <mi>Σ</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> </mrow> </munderover> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>,</mo> <mi>i</mi> <mo>=</mo> <mn>1,2</mn> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> </mrow> <mrow> <mo>[</mo> <msub> <mi>y</mi> <mi>c</mi> </msub> <mo>]</mo> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi>max</mi> </mrow> <msub> <mi>y</mi> <mi>j</mi> </msub> </munder> <mrow> <mo>(</mo> <munderover> <mi>Σ</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> </mrow> </munderover> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>y</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1,2</mn> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> </mrow>(xi,yj)表示窗口内的各像素坐标,其中i=1,2,…,2l+1,j=1,2,…,2l+1;f(xi,yj)表示像素(xi,yj)处的灰度值;5)建立以整像素坐标([xc],[yc])为原点的局部图像坐标系,则以局部图像坐标系原点为窗口中心的(2l+1)×(2l+1)窗口内的各像素坐标相应地表示为(m,n),其中m=‑l,‑l+1,…,0,…,l‑1,l;n=‑l,‑l+1,…,0,…,l‑1,l,像素(m,n)处的灰度值相应地表示为f(m,n);6)根据局部坐标系下窗口内各像素灰度f(m,n),按式(1)计算高斯光斑的方差: <mrow> <msup> <mi>σ</mi> <mn>2</mn> </msup> <mo>=</mo> <munderover> <mi>Σ</mi> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <munderover> <mi>Σ</mi> <mrow> <mi>n</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <mrow> <mo>(</mo> <msup> <mi>m</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>n</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mo>/</mo> <mn>2</mn> <mrow> <mo>(</mo> <msup> <mrow> <mo>(</mo> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mi>ln</mi> <mi>f</mi> <mrow> <mo>(</mo> <mn>0,0</mn> <mo>)</mo> </mrow> <mo>-</mo> <munderover> <mi>Σ</mi> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <munderover> <mi>Σ</mi> <mrow> <mi>n</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <mi>ln</mi> <mi>f</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>7)根据步骤6)计算出来的高斯光斑方差σ2,以及局部坐标系下光斑窗口内各像素灰度f(m,n),按式(2)计算当前光斑中心坐标在x方向的亚像素部分: <mrow> <mi>dx</mi> <mo>=</mo> <mfrac> <msup> <mi>σ</mi> <mn>2</mn> </msup> <mrow> <mi>l</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <mi>ln</mi> <mrow> <mo>(</mo> <munderover> <mi>Π</mi> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <munderover> <mi>Π</mi> <mrow> <mi>n</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <mfrac> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mo>-</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>8)根据步骤6)计算出来的高斯光斑方差σ2,以及局部坐标系下光斑窗口内各像素灰度f(m,n),按式(3)计算当前光斑中心坐标在y方向的亚像素部分: <mrow> <mi>dy</mi> <mo>=</mo> <mfrac> <msup> <mi>σ</mi> <mn>2</mn> </msup> <mrow> <mi>l</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mn>2</mn> <mi>l</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <mi>ln</mi> <mrow> <mo>(</mo> <munderover> <mi>Π</mi> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <munderover> <mi>Π</mi> <mrow> <mi>n</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <mfrac> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mo>-</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>9)分别求出([xc],[yc])和(dx,dy)后,即得到当前光斑的实际中心的精确坐标(xc,yc):xc=[xc]+dxyc=[yc]+dy10)将步骤9)所获坐标值与当前光斑所对应的序号一起存储在寄存器中,然后按光斑序号的顺序对下一光斑重复步骤3)~步骤10),直至所有高斯光斑中心精确定位完毕。 |