图像清晰度评价函数是评价光学显微成像系统成像质量的关键函数, 而一个良好的图像清晰度评价函数应满足单峰性、无偏性、灵敏度高、信噪比大及计算量大的要求[1]。目前国内外学者提出了很多图像清晰度评价函数, 每种评价函数各有优缺点, 并且在不同的环境下有不同的评价效果, 但大多只能在某些特定情况下才具有较好的效果。由于自动对焦的系统十分复杂和多变, 一种函数无法适应所有的对焦场合, 因此本文将对目前比较常见的十几种图像清晰度评价函数进行对比分析, 研究其主要性能和特点, 以便为这些函数的正确使用提供一定的依据。
1 图像清晰度评价函数(1) Brenner梯度函数(Brenner)[2]
Brenner梯度函数仅仅考察被判断点与其中一个相邻像素点之间的灰度差值, 简洁实用、计算量少, 其表达式为
|
(1) |
式中I(x, y)为像素点(x, y)处的灰度值。
Brenner梯度算子可以看作是模板T=[-1 0 1]和对应位置的图像像素[I(x, y) I(x+1, y) I(x+2, y)]依次进行卷积, 模板T=[-1 0 1]是一个带通滤波器, Brenner梯度算子正是通过带通滤波来滤除比例较大的低频能量, 保留图像中的中频部分能量。
(2) 改进的Brenner梯度函数(ImprovedBre)
改进算法采用两个模板滤波器来克服阈值对传统Brenner算法评价结果的影响[3]。两个滤波器模板分别是带通滤波器T=[-1 0 1]和高通滤波器G=[1 -1]。用两个滤波器模板分别对图像进行滤波, 通过计算低频部分能量和高频部分能量来评价图像的清晰度。
改进的清晰度评价算法可定义为
|
(2) |
改进的算法在滤除比例较大的低频成分的同时, 保留了图像细节丰富的中高频成分。
(3) 绝对方差函数(AbsVar)[4]
绝对方差函数是一个较为简单的算法, 它仅仅是将像素点与其相邻位置的特定一个像素进行比较, 其表达式为
|
(3) |
因为正焦图像的边缘有较大的灰度差值, 所以正焦图像经过这个算法计算之后会得到相对于离焦图像更大的值, 且图像越模糊, 其值越小。
(4) Roberts梯度函数(Roberts)[5]
该函数对于绝对方差函数来说, 考察的不仅仅是像素点和其中一个邻域像素的灰度关系, 而是将像素点和其右下角的邻域像素进行比较, 同时再比较其垂直方向下的两个邻域像素之间的灰度差值, 两组差值的和作为函数的最终结果。函数表达式为
|
(4) |
该函数使用了被判断点及其外沿三个像素点的灰度信息, 实际上是以某一点为中心的连续梯度的近似, 处理边缘特性的时候比绝对方差和Brenner梯度函数要好。
(5) Laplacian函数(Laplacian)[6]
Laplacian函数就是利用了边缘检测的Laplacian算子, 其表达式为
|
(5) |
式中:T为阈值; G(x, y)为图像与Laplacian算子的卷积。Laplacian算子为
|
(6) |
该评价函数使用了被判断点及其周围四个像素点的灰度信息。Laplacian函数是二级微分算子, 对孤立噪声点的响应是对阶跃边缘响应的4倍, 对单像素线条的响应是对阶跃边缘响应的2倍, 对线端及斜向边缘的响应大于垂直及水平走向边缘的响应, 所以它不及Roberts梯度函数和梯度向量模方函数。
(6) Tenengrad函数(Tenengrad)
该函数和Laplacian函数类似, 同样运用边缘检测的思想[7]。与之不同的是Tenengrad函数采用的是Sobel算子, 利用Sobel算子来估算图像在水平方向和垂直方向的梯度, 为使图像边缘的梯度放大, 对梯度进行平方运算。其定义为
|
(7) |
其中
|
(8) |
式中Gx(x, y)和Gy(x, y)分别是图像与gx和gy的卷积, 其中gx和gy分别是水平方向和垂直方向的Sobel算子, 可表示为
|
(9) |
Tenengrad函数是先加权平均再微分, 分别对水平和垂直方向进行模板运算, 对噪声有一定的抑制能力。
(7) 梯度向量模方函数(SGVM)
梯度向量模方函数是一个灰度变化梯度和的表达式, 只选取了梯度标量数值信息作为灰度变化量描述[8], 其函数定义为
|
(10) |
(8) 自相关函数(Autocorrection)
当图像细节越多, 即高频能量越丰富时, 自相关函数的曲线就越尖锐[9]。该方法兼顾空间域函数的优点并且克服了空间域函数对噪声干扰敏感和对对焦区域选择要求高的缺点, 具有较好的实时响应性能。该函数表达式为
|
(11) |
该函数能较好地克服图像中噪声和高亮目标等因素的影响, 但是计算量较大。
(9) 熵函数法(Entropy)
熵函数法是根据香浓信息论提出来的, 香浓认为熵越大的时候信息量就越多, 然后将此原理应用到图像清晰度评价中, 因此可以认为在图像能量一定的情况下, 图像熵越大图像越清晰[10]。定义为
|
(12) |
(10)全频段积分函数(Integral)[11]
在整个频域段进行积分, 表达式为
|
(13) |
(11)相邻灰度差分算子绝对值之和(Sum)[12]
用差分绝对值代替乘方和开方, 即对被测点及其邻近点的灰度作差分运算, 提取该点灰度值的变化大小, 图像灰度差分绝对值之和算子为
|
(14) |
式中M、N分别为图像长度和宽度的像素数。
(12)中值滤波-离散余弦函数(MDCT)[13]
函数表达式为
|
(15) |
其中
该函数可以将图像信息由空域转换至频域, 图像越模糊高频分量越少, 模糊图像中相邻像素间的相互作用, 表现为频域分布中高频成分的缺失, 以高频成分的大小作为图像清晰度的评价依据。
(13)图像能量函数(ImageEnergy)[14]
使用图像能量函数作为清晰度评价函数的原因, 是由于图像在离焦成像时, 离焦量越大, 弥散损失的能量就越大。该函数表达式为
|
(16) |
(14)平面微分平方和(PlanarDiff)
对图像进行微分运算提取图像中景物的边缘和轮廓, 可以评判图像中高频分量的大小, 并判断对焦正确与否[15]。其表达式为
|
(17) |
该算法最大的特点在于计算方法简单而且计算量小, 适用于需要实时自动对焦的场合。
(15)基于Prewitt边缘检测算子的清晰度评价函数(Prewitt)[16]
Prewitt算子与Sobel算子非常类似, 只是模板系数不同。Prewitt算子的sx和sy分别用卷积模板表示为

图像清晰度评价函数为
|
(18) |
式中: 
Prewitt边缘算子是一种一阶微分算子, 是在图像空间利用两个方向模板与图像进行邻域卷积来完成检测。
(16)基于LOG边缘检测算子的清晰度评价函数[17](LOG)
LOG算子对图像进行边缘检测时, 输出的LOG(x, y)是通过卷积运算得到的。LOG(x, y)常用模板为
|
应用LOG边缘检测算子评价清晰度时, 最后整幅图像的清晰度评价公式为
|
(19) |
这种方法是先将图像和高斯滤波器进行卷积运算, 这种运算既平滑了图像又降低了噪声, 由于孤立的噪声点和较小的组织结构将同时被滤除, 会不利于清晰度评价的精度, 但此方法会增强调焦函数的单调性。
2 算法比较本文在多个环境下对16种算法进行了比较和验证, 所有算法均由MATLAB编程, 并且在相同的计算机环境下测试。
为了验证这些算法的性能, 我们对同一个电路板拍摄了一组在纯白背景下的图像。我们选择了在清晰成像位置附近, 每隔0.05 mm采集一幅图像, 焦面前和焦面后各10幅, 一共采集到21幅图, 将所得到的21幅图像从1到21依次排序, 得到一组序列号, 并在不同环境条件下对各个算法的单峰性, 无偏性、灵敏度以及计算量进行比较。
2.1 单峰性、无偏性和灵敏度图 1为各个函数运算并平滑归一化之后的结果。
|
图 1 理想情况下各清晰度评价函数运算结果 Figure 1 The results of all sharpness functions |
由图 1可以看出, 熵函数、全频段积分函数以及图像能量函数表现极差, 甚至不能找出最清晰的那幅图像。而Tenengrad函数和自相关函数虽然能分辨出最清晰的图像, 但是仍然能清楚地看出存在局部极值点。下面我们来对比一下其他算法的性能, 理想情况下, 运算结果如图 2所示。
|
图 2 理想情况下部分函数的运算结果 Figure 2 The results of part of sharpness functions |
由图 2可见:在单峰性方面, 每个函数都体现了极好的单峰性, 并且函数在第一幅图像到最后一幅图像的调焦范围内都只有一个极值点; 在无偏性方面, 每个函数的极值点都在横轴为10的位置, 即每个函数的最佳焦距位置都指向第10幅图像的位置, 函数之间的结果得到相互的证明; 在灵敏度方面, Laplacian函数和中值滤波-离散余弦函数的灵敏度最高, 基于Prewitt边缘检测算子的函数的灵敏度是这几个函数中最低的。
2.2 计算量图 3为各个函数运行一次所耗费的时间。
|
图 3 理想情况下各函数运行耗时 Figure 3 Time-consumption of each algorithm |
从图 3可以看出, 熵函数耗时最短, 而相邻灰度差分算子绝对值之和函数耗时最长。但是在耗时方面, 由于受计算机因素的限制以及函数运行环境的影响, 在此仅仅作为参考。
为了验证以上结果的可靠性, 我们用有自动对焦功能的显微镜拍摄了南瓜茎细胞在显微镜离焦-合焦-离焦状态下的一段视频, 从中间截取了25张图像对以上结果进行验证。
图 4的3张图分别是显微镜离焦、合焦、再离焦时拍摄到的南瓜茎细胞图。
|
图 4 南瓜茎细胞图像 Figure 4 Images of cell of pumpkin stem |
理想情况下, 各函数运算结果如图 5所示。
|
图 5 理想情况下各清晰度评价函数运算结果 Figure 5 The results of all sharpness functions |
从图 5中可以看出:熵函数、图像能量函数以及全频段积分函数均不能识别出最清晰的那幅图像; 其次, 仍旧可以看到Tenengrad函数和自相关函数拥有几个不可忽视的局部峰值; 其余的函数均表现出来较好的无偏性, 均在第13幅图的位置达到了最大值, 而且都只有一个极值点, 证明了这些函数优秀的单峰性; 而在灵敏度方面, Lapacian函数的灵敏度仍旧是最高的。这组结果和以上结果得到了很好的相互验证。
2.3 抗噪性高斯噪声和椒盐噪声是现在图像中最常见的两种噪声, 而清晰度评价函数应该具备一定的抗噪性, 所以我们给所拍摄的21幅图像分别加上标准偏差为200的高斯噪声和椒盐噪声, 以此来测试各个算法的抗噪能力。
2.3.1 高斯噪声图 6为各个函数在原图像加入高斯噪声并归一化平滑之后的结果。
|
图 6 高斯噪声情况下各清晰度评价函数的运算结果 Figure 6 The results of all sharpness functions |
由图 6可以看出, Laplacian函数、熵函数、全频段积分函数以及图像能量函数性能极差。尤其是Laplacian函数, 在这种情况下波动极其大, 完全无法识别最清晰的图像, 而在近乎理想的情况下Laplacian函数表现最好, 由此我们可以推知, Laplacian函数虽然各方面性能都十分好, 但唯独抵抗噪声的能力非常弱。究其原因, Laplacian函数利用的是边缘检测的Laplacian算子, Laplacian算子利用的是二阶微分, 使得Laplacian函数对边缘十分敏感, 由于噪声也有边缘, 这就大大地影响了该算法, 使得算法将噪声的边缘误以为是正焦图像的边缘, 导致算法在离焦的区域也有较大的输出, 形成不可忽视的极值点。图 7为其余12种函数的运算结果, 图 8为12种函数中表现较好的4种函数。
|
图 7 高斯噪声情况下部分函数的运算结果 Figure 7 The results of part of sharpness functions |
|
图 8 高斯噪声情况下表现较好的函数的运算结果 Figure 8 The algorithms with only one peak |
从图 7中我们可以看出, 这些函数受高斯噪声的影响较小, 均具有较好的无偏性, 但仍旧有部分函数出现了数值可观的极值点。
从图 8我们可以看到, Brenner函数、Tenengrad函数, 基于Prewitt边缘检测算子的函数以及中值滤波-离散余弦函数表现较好, 具有较好单峰性和灵敏度。
2.3.2 椒盐噪声图 9为各函数在原图中加入椒盐噪声并归一化平滑之后的结果。从图我们可以看出, 椒盐噪声对函数的影响十分大, 只有几个函数不受影响。Brenner函数、平面微分平方和函数和中值滤波-离散余弦函数虽然能识别出最清晰的图像, 但均具有较大的极值点, 而Laplacian函数、Tenengrad函数、熵函数、全频段积分函数以及图像能量函数则是连最清晰的图像都分辨不出来。以下我们将对性能好的几个函数(如图 10所示)作进一步的讨论。
|
图 9 椒盐噪声情况下各清晰度评价函数的运算结果 Figure 9 The results of all sharpness functions |
从图 10可知, 这几个函数仍旧能识别出最清晰的图像, 也具有较好的单峰性和灵敏度。但是自相关函数仍旧存在不可忽视的波动, 改进的Brenner函数、绝对方差函数、Roberts函数、梯度向量模方函数、相邻灰度差分算子绝对值之和以及基于LOG边缘检测算子的函数这6个函数的综合性能表现较优, 其中Roberts函数曲线最为平滑, 几乎不存在局部峰值。
|
图 10 椒盐噪声情况下部分函数的运算结果 Figure 10 The results of part of sharpness functions |
一种函数是无法在所有的环境中通用的, 一种函数也许在这种环境中表现都很好, 但拿到另一种环境中也许就完全无法使用。比如我们的Laplacian函数, 在近乎理想的环境下, Laplacian函数无论是在无偏性、单峰性还是在灵敏度方面均表现出色, 但到了存在高斯噪声和椒盐噪声的情况下, 完全不能使用。所以, 针对不同的环境选择不同的清晰度评价函数是十分重要的。
本文研究了16种清晰度评价函数在近乎理想的情况、存在高斯噪声的情况、存在椒盐噪声的情况这三种情况下各种性能的表现, 为以后更好地使用这些函数提供参考。
在近乎理想的情况下, 可以选择Laplacian函数作为清晰度评价函数; 而在高斯噪声存在的情况下, 则应该选择Brenner函数、Tenengrad函数、基于LOG边缘检测算子的函数或者中值滤波-离散余弦函数; 在椒盐噪声存在的情况下, 改进的Brenner函数、绝对方差函数、Roberts函数、梯度向量模方函数、相邻灰度差分算子绝对值之和以及基于LOG边缘检测算子的函数比较好。
| [1] | 任四刚, 李见为, 谢利利. 基于灰度差分法的自动调焦技术[J]. 光电工程, 2003, 30(2): 53–55. |
| [2] | 李奇, 冯华君, 徐之海, 等. 数字图象清晰度评价函数研究[J]. 光子学报, 2002, 31(6): 736–738. |
| [3] | 王健, 陈洪斌, 周国忠, 等. 改进的Brenner图像清晰度评价算法[J]. 光子学报, 2012, 41(7): 855–858. |
| [4] | 陈国金, 朱妙芬, 张克松. 图像调焦过程的清晰度评价函数研究[J]. 数据采集与处理, 2009, 24(2): 165–169. |
| [5] | 高赞, 姜威, 朱孔凤, 等. 基于Roberts梯度的自动聚焦算法[J]. 红外与激光工程, 2006, 35(1): 117–121. |
| [6] | YAO Y, ABIDI B, DOGGAZ N, et al. Evaluation of sharpness measures and search algorithms for the auto focusing of high-magnification images[C]//Proceedings of the SPIE volume 6246 visual information processing XV. Orlando: SPIE, 2006, 6246: 62460G. |
| [7] | REDONDO R, BUENO G, VALDIVIEZO J C, et al. Autofocus evaluation for brightfield microscopy pathology[J]. Journal of Biomedical Optics, 2012, 17(3): 036008. DOI:10.1117/1.JBO.17.3.036008 |
| [8] | 孙文. 调制传递函数测试仪的自动调焦技术研究[D]. 南京: 南京理工大学, 2009. http://cdmd.cnki.com.cn/Article/CDMD-10288-2009197628.htm |
| [9] | SANTOS A, DE SOLÓRZANO C O, VAQUERO JJ, et al. Evaluation of autofocus functions in molecular cytogenetic analysis[J]. Journal of Microscopy, 1997, 188(3): 264–272. DOI:10.1046/j.1365-2818.1997.2630819.x |
| [10] | JARVIS R A. Focus optimization criteria for computer image processing[J]. Microscope, 1976, 24(2): 163–180. |
| [11] | 鲍歌堂, 赵辉, 陶卫. 图像测量技术中几种自动调焦算法的对比分析[J]. 上海交通大学学报, 2005, 39(1): 121–124. |
| [12] | 吴振锋, 左洪福, 邱根良. 光学显微镜自动聚焦的技术研究[J]. 光学仪器, 2000, 22(4): 9–12. |
| [13] | ZHANG X, JIA C, XIE K. Evaluation of autofocus algorithms for automatic detection of Caenorhabditis elegans lipid droplets[J]. Progress in Biochemistry and Biophysics, 2016, 43(2): 167–175. |
| [14] | MATEOS-PÉREZ J M, REDONDO R, NAVA R, et al. Comparative evaluation of autofocus algorithms for a real-time system for automatic detection of mycobacterium tuberculosis[J]. Cytometry Part A, 2012, 81(3): 213–221. |
| [15] | 郑玉珍, 吴勇, 倪旭翔. 实时自动对焦的研究[J]. 光电工程, 2004, 31(4): 64–66. |
| [16] | 吴曦. 基于MATLAB的图像边缘检测算法的研究和实现[D]. 长春: 吉林大学, 2014. http://cdmd.cnki.com.cn/Article/CDMD-10183-1014281500.htm |
| [17] | 刘兴宝. 基于数字图像处理的自动对焦技术研究[D]. 绵阳: 中国工程物理研究院, 2007. http://cdmd.cnki.com.cn/Article/CDMD-82818-2008032633.htm |
2018, Vol. 40
Issue (1): 28-38

