基于CCD的全自动焦度计光学图像系统设计
1 全自动焦度计光学算法推导
1.1 全自动焦度计的工作原理
图1为自动焦度计的光路原理图。点光源发出的光,经准直镜准直,照射到被测眼镜片上发生偏折,再经过分光光阑和测量透镜投射到CCD上,在CCD上得到含有数学模型的图像。由于被测镜片的屈光状态不一样,在CCD上所成像的大小、位置和形状会发生变化,通过CCD接收和微机对图像位置形状的处理,可得到被测镜片的相关参数。
1.2 16点数学模型
图2为无测量镜片,即OD时,CCD上的成像分布图。当被测镜片为负球面镜时,十六个光斑相对于初始位置对称地扩张;当被测镜片为正球面镜时,十六个光斑相对于初始位置对称地收缩。将16个光斑按图3虚线所示分成四组。分别求出X方向或者Y方向上两个像点之间的距离,即可得到被测球镜的顶焦度S值。设四组光斑求出的顶焦度值为S1、S2、S3和S4,则S值为
当被测镜片为柱面镜时,CCD上的光斑分布图如3所示。由于柱面镜含有两个主顶焦度,因此,16个光斑成不对称分布。现以其中一组光斑(4个测量点)为例推导柱面镜主顶焦度的计算方法。设A点与C点在X轴方向上的距离为x2,在Y轴方向上的距离为y1;设B点与D点在X轴方向上的距离为x1,在Y轴方向上的距离为y2。假设D1、D2分别为柱面镜的两个主顶焦度,θ为柱面镜的轴角。有以下方程成立
其余三组光斑的计算方法同上,在这里不再累述。不防设四组光斑计算出的柱面镜顶焦度值为C1、C2、C3和C4,轴角为θ1、θ2、θ3和θ4,则柱面镜的顶焦度C值和轴角为
2 全自动焦度计的图像处理系统
根据自动焦度计的工作原理以及系统所要实现的功能设计出硬件系统。系统由两大部分组成:数据采集系统和数据处理系统。数据采集系统由CCD、A/D、AVR单片机和FIFO存储器组成,主要负责采集数据并将数据存储到FIFO存储器;数据处理系统由FPGA、LCD、FIFO存储器、键盘、和LED光源组成,主要负责对采集的数据进行分析和计算,并将计算结果输出显示或打印。
CCD是面阵敏感元件,在积分的时间内,CCD敏感元件上积累电荷,当积分完毕,将电荷数据依次移出。由于电荷数据是微弱的模拟量,须经信号放大,再经A/D转换得到本系统所需的数字量。为了减小对FPGA的CPU的占用率,在CCD采样板上设置一存储器,将转换完的数据暂存一下,以供FPGA系统读取。当光路中无测量镜片时,FPGA读取CCD的采集数据,计算出光斑的中心位置,并将计算结果作为系统的初始参数。当光路中插入被测镜片时,分划板在CCD上的成像位置将发生变化,位置的变化量与被测镜片的球镜度和柱镜度有相互对应的比例关系。FPGA接收像的位置信息经变换后计算出被测镜片的相关参数。
3 图像的二值化处理
由上述系统可以看出,图像处理的好坏会直接影响测量的精度和稳定性。由于图像采集设备CCD采用PAL制,所以系统要求FPGA处理一帧图像的时间不超过20ms。图像二值化算法的选择标准为简单有效,易于实现。故本系统采用最大类间方差阈值分割算法。最大类间方差法的基本思想是把图像中的像素按灰度值用阈值t分成两类A和B。A由灰度值在0-t之间的像素组成,B由灰度值在t+1-L-1(L为图像灰度级数)之间的像素组成,按下式计算A和B之间的类间方差
式中wA(t)为A中所包含的像素数,wB(t)为B中所包含的像素数。uA(t)为A中所有像素的平均灰度值,uB(t)为B中所有像素的平均灰度值。u(t)为全图的平均灰度值。
从0到L-1依次改变t值,取使δ(t)为最大的t值作为最佳阂值T。
通常一个光斑的中心坐标应为该光斑的圆心。但是,经过FPGA处理后的图像由于离散化,已不是规则排列,故采用质心计算法求出光斑的中心。首先设光斑由n个像素组成,每个像素对应的空间坐标为(xi,yi),灰度值为p(xi,yi),则该光斑的质心坐标为
由于xi和yi是FPGA内存图像的质心坐标,通过一定的当量换算可折算成实际图像中光斑的中心坐标。将各点的中心坐标带入式(7)-(10),即可求出被测镜片的相关参数。
4 结束语
文中提出了一种新的全自动焦度计的测量图像,并建立了相应的计算方法。运用该系统测量系列标准镜片,技术指标已达到国家相关检验标准。与
评论