其中:f(x,y)表示为第x行、第y列像素的亮度值。本算法选取了邻近的两个像素作比较(像素分别是f(x,y)像素的左侧和上侧),与灰度差分法相比,有着更好的单峰、单调和对称性。
2 自动聚焦系统的组成和原理
本系统主要由CCD摄像机、带步进电机的光学镜头、FPGA和单片机控制电路组成。CCD摄像机采用SONY公司推出的 SONY47W CCD 套件,该套件支持的最高分辨率为752×582并支持ITU-REC656 YUV数字信号输出。系统整体框图如图1所示。
系统上电复位后,DSP接收CCD图像传感器输出的模拟视频信号,并对该信号进行A/D转换、白平衡和亮度/色度等处理后,转换成YUV数字信号输出。在行、场及像素时钟信号的控制下,把亮度信号(Y)输入到FPGA中,FPGA统计相邻两场图像的亮度信号,并按照本系统提出的图像清晰度评价函数对图像进行分析、比较,并把比较结果输入到单片机中。单片机根据比较结果,通过步进电机的转动方向和步数来控制光学镜头,从而实现自动聚焦。
在自动聚焦系统中,搜索策略通常采用盲人爬山比较法[4]。首先取得起始位置的图像,并计算出此时的评价函数值;然后,让步进电机驱动镜头从起始位置向上移动一步,将此时的图像与前者比较。若比前者的聚集评价函数值大,就继续向上移动调焦镜头;如此循环,直至图像的聚焦评价函数值小于前一位置,则前一位置就是图像最清晰的位置,聚焦结束。该算法简单,但在实际应用中,由于图像采样、量化及传输过程中各种干扰引起的图像噪音影响,经常会出现误判。因此,本文采用了一种改进的盲人爬山比较法,称为“三点”比较法。该方法在确定镜头位置时,不是仅根据前后2 次聚焦评价值的大小来确定,而是用3 个点大小的变化确定曲线的方向,最终确定镜头位置。为了叙述清楚,用f1、f2、f3分别表示镜头在不同位置时的聚焦评价函数的值,这里只分析f1>f2时可能出现的情况(当f1f2时,先不进行判断,而是把结果保存起来,让步进电机继续驱动镜头向原方向移动到位置f3;如果f2>f3,则可以确定聚焦曲线是下降方向,此时,让步进电机驱动镜头到f1位置;如果f2f3,则认为出现“错误”点,不做判断,让镜头再向前运动到f4,再对f2、f3、f4进行三点判别,得到正确的聚焦位置;如果f2
3 实验数据分析
为证实所提出的评价函数的有效性,对该系统进行了大量实验,并与灰度差分法所获得图像进行比较。图2、图3是以简单的文本图像为例,在聚焦点附近算法改进前后各测得的20组聚焦值并据此绘制的聚焦评价函数曲线。图4、图5分别是算法改进前后,采用本系统所拍摄的聚焦图像。