发明名称 二维高斯分布光斑图像中心快速高精度定位方法
摘要 本发明涉及一种二维高斯分布光斑图像中心快速高精度定位方法,通过CCD相机的离焦成像,获取近似二维高斯分布的图像,将图像进行处理,初步分割出图像中的多个光斑并标定序号,先确定出光斑中心的整像素坐标,然后以整像素坐标为原点建立局部图像坐标系,计算高斯光斑的方差,以及光斑中心在x方向和y方向的亚像素坐标分量,最后将整像素坐标与亚像素坐标合成得到光斑中心的实际精确坐标。本发明方法综合利用了窗口内的所有像素灰度信息,通过解析表达式直接计算高斯分布光斑的亚像素中心位置,无需求解广义逆矩阵,与传统的高斯曲面拟合法相比,效率提高200倍以上且没有精度上的损失,可实现多个光斑中心的实时提取。
申请公布号 CN102496015B 申请公布日期 2013.08.21
申请号 CN201110371950.1 申请日期 2011.11.22
申请人 南京航空航天大学 发明人 冯新星;张丽艳;叶南;杨博文
分类号 G06K9/32(2006.01)I 主分类号 G06K9/32(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 艾中兰
主权项 一种二维高斯分布光斑图像中心快速高精度定位方法,其特征在于包含如下步骤: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>&Sigma;</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>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</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>&Sigma;</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>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</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>&sigma;</mi> <mn>2</mn> </msup> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <munderover> <mi>&Sigma;</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>&Sigma;</mi> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <munderover> <mi>&Sigma;</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>&sigma;</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>&Pi;</mi> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <munderover> <mi>&Pi;</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>&sigma;</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>&Pi;</mi> <mrow> <mi>m</mi> <mo>=</mo> <mo>-</mo> <mi>l</mi> </mrow> <mi>l</mi> </munderover> <munderover> <mi>&Pi;</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),直至所有高斯光斑中心精确定位完毕。
地址 210016 江苏省南京市御道街29号南京航空航天大学计算机科学与技术学院