图像边缘检测算子的适用场景研究
2019-07-08王润
王润
摘要:边缘是图像最基础也最重要的基本特征之一,边缘检测更是图像分割、模式识别等图像技术的重要前提。因此图像的边缘检测一直是图像处理领域研究的热点。一个好的边缘检测方法可以极大的提高图像处理的效率和正确率。本文简要介绍了边缘检测,并对几种经典检测算子的实现原理进行分析,介绍了各种算子的检测性能及适用图像类型。另外以Laplacian算子为例分析算子阀值的选取重要性。最后对六种检测算子进行相应的实现,分为无噪声检测、有噪声检测和滤波后检测。通过对比实验结果来验证各种检测算子的检测性能与适用场景。
关键词:边缘检测;图像处理;经典算子;Laplacian;阈值
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2019)13-0211-04
1引言
图像是客观世界的信息载体,是我们认识世界的重要途径。随着计算机技术的发展以及对图像处理不断的研究,图像处理技术的应用范围也越加广泛,如:医学光影,地质勘探,战场分析,光学显微等。而在图像的处理与分析中往往绕不开一个前提,就是图像边缘检测。图像边缘能传递大部分图像信息,边缘检测主要是为了正确反映图像的形状和反射等信息,是图像识别、图像分析、模式识别、目标追踪、物体判别等技术的前期重要步骤,边缘检测的准确度在一定程度上决定了后续工作能否顺利进行,因此,图像的边缘检测技术是图像处理邻域必须重视的研究课题。
自20世纪60年代便已经有了较为科学的边缘检测算子,在这一领域,迄今为止已经有大量优秀的研究成果被应用。目前对图像边缘检测的研究方向分为两个:一是结合经典算子和新思想寻找出新的、性能更好的算子,二是将已经成熟的图像边缘检测算子更高效的运用在实际场景。
目前主流的边缘检测方法主要有:微分算子法、统计学方法、曲面拟合法、最优算子法、多尺度方法。其中最为成熟、应用最为广泛的还是微分算子法。通过分析各算子原理,总结各自的适用领域,能够让各算子在实际应用中更好的发挥其长处,并为新的边缘检测方法提供衡量尺度和改进依据。
2 边缘检测技术概述
2.1 边缘检测
图像边缘是由一类像素点组合而成的,这类像素点周围的像素灰度有明显的变化。边缘是具有幅值和方向的矢量,在图像中表现为像素灰度的突变。
客观的三维物体用图像来显示时,空间信息就变成了二维的平面信息。一张二维的图像可以用一个二维数组f(x,y)来表示。这里的x和y表示一个二维空间{x,y}上的一个坐标点。f表示这个坐标点上的某种特征。在灰度图中,f表示的是这一坐标上像素的灰度,即图像的亮度。通过考察图像中像素每邻域内的灰度突变可以大致判别出图像边缘的位置。
早期的边缘检测利用梯度算子[1]或一阶导数来估计图像灰度变化的梯度方向,然后对该梯度进行阈值运算,如果梯度值大于某个给定的阈值,则该点处就是边缘点。阈值的选取对图像边缘检测有很大的影响[2],特别是在加噪声的图像中,如果没有选择合适的阈值,会在边缘锐化和噪声平滑之间失去平衡,导致边缘成像的质量很差。算子性能的评价指标包括成像的连续性、边缘的宽度、边缘的定位精度、抗噪声能力以及算子时间复杂度。
3 算子的阈值影响
阈值是边缘检测成像过程中关键的一个参数,在传统的经典算子中,同一个算子,对于不同的图像场景,阈值的选取也是不同的。比较常用的阈值选取方法有两种:一是全局阈值法[10-11],典型的有大津法[12](最大类间方差法);二是局部阈值法[13],典型的有Bernsen算法[14]。
本文的重点并不在阈值的选取上,因此本节主要介绍阈值选取对图像边缘检测的重要性,不对阈值的选取过程做更多的研究。在这里以没有滤波功能的Laplacian算子为例,对比不同场景下,不同的阈值对边缘检测的成像影响。
3.1检测无噪声图片的阈值影响
本文以下内容均以图1为原图进行实验。
图2从左到右依次为阈值为0.02、0.2、0.5时的边缘图像,对比上面三图,可以明显看到对于无噪声图像,Laplacian算子的阈值在0.2左右比较合适,当阈值选择过小时,会使大量像素点被误判为边缘像素点,这样会丢失边缘的精确定位,产生过多的非边缘像素点。当阈值选择过大时,又会把很多边缘点判定为非边缘点,导致边缘信息大量缺失。
3.2 检测加高斯噪声图片的阈值影响
图3从左到右、从上至下依次为加噪图像、加噪后阈值为0.1、0.5、0.9时的边缘图像。从上面三图可以明显看到,在图片中添加了加入少量均值为0方差为0.001高斯噪声后,虽然多次变换阈值,但是Laplacian算子还是无法精确的区别边缘点与噪声点。这也从侧面印证滤波对图像边缘检测的重要性。
3.3 滤波后图像的阈值影响
图4从左至右、从上至下依次为滤波图像、滤波后阈值为0.002、0.02、0.05时的边缘图像。本文采用中值滤波[15]加均值滤波[16]结合的方法对加入高斯噪声的图像进行滤波,滤波效果一般,但是对比未滤波时的边缘检测效果来说,Laplacian算子的性能到了明显的提升,在选取合理的阈值时,能大致描述出图像的边缘,但是对边缘的细节检测还是欠缺。
通过第3小节的实验,可以知道边缘检测中阈值的选取不宜过大或过小,在后面的实验中,选取了各算子较合适的阈值,以期得到最准确的实验结果。
4. 经典算子及实驗结果分析对比
4.1 各经典算子对原图检测性能对比
如图5所示,从左至右,从上至下分别是原图经过Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、LoG算子和Canny算子进行边缘检测后的结果。
Roberts算子的成像效果并不是很好,忽略了图像的许多细节,边缘的断续较严重。
Sobel算子对于大部分较明显的边缘都可以检测出来,但是对于不明显的边缘则造成了大量的误判,图像边缘的连续性也并不是很好。
Prewitt算子在边缘检测的成像上与Soble基本一致,Sobel更注重中心特征的提取,所以成像的定位略微精准些,Prewitt因为等价提取,所以细节上略微精准些。
Laplacian算子可以明显看到图中边缘的位置比较精确,对帽子上沿的检测效果很好,对确定为边缘的像素点有增强,但是丢失了一些被误判的边缘点,而且检测图像中出现了噪点。
LoG算子无明显短板,但还是有一些边缘的断续。此算子会减少边缘点的误判,并且解决了Laplacian算子对噪声敏感的缺点,性能上明显优于Laplacian算子。
Canny算子成像更加精细,能检测到绝大多数的边缘信息,并且很少有边缘误判,且边缘连续性也很好。
4.2 加噪声时各经典算子边缘检测性能对比
在图像中加入少量均值为0方差为0.001高斯噪声,各算子检测结果如图6所示,从左至右,从上至下分别是原图经过Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、LoG算子和Canny算子进行边缘检测后的结果。
从图6可以明显看出Roberts算子无抑制噪声的能力,在加入噪声的情况下丢失了大量的边缘信息。
Sobel算子运用像素点上下、左右相邻点的灰度加权算法,对噪声有一定的平滑作用。但是因为局部平均的影响,也出现了一些伪边缘。
Prewiit算子由于像素平均的原理具有一定的平滑噪声的能力,所以在有噪声的情况下依然能检测出边缘,但同时丢失了大量的边缘,且定位不够精确。
Laplacian算子作为二阶差分,对噪声更加敏感,它使图像中的噪声部分加强。图中已经判别不出噪声点和边缘点了。
LoG算子会先对图像进行平滑处理,其成像依然比较精确,大部分的边缘都能检测出来,但依然会将一些噪声点误判为边缘,导致边缘图像中出现了较多的噪点。
Canny算子的表现中规中矩,虽然检测出来了绝大多数的边缘,但也将一些噪点误判并连接到了边缘上,不过噪点量小于LoG算子,在加噪声图像的检测中,性能算是最好。
4.3 进行滤波后各经典算子边缘检测性能对比
本文使用中值加均值滤波对加高斯噪声的图像进行平滑,各算子检测对比如图7所示,从左至右,从上至下分别是原图经过Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、LoG算子和Canny算子进行边缘检测后的结果。
可以明显看出,滤波后虽然解决了边缘图像的噪点问题,但是滤波也导致很多边缘信息的丢失。
Roberts算子在丢失了一些在噪声情况下可以检测到的细小边缘。Sobel和Prewitt本身就有一点的抑制噪声的功能,在处理前滤波,导致图像过于平滑,在处理的过程中因两次滤波导致边缘信息丢失过多,图像面部边缘信息基本全部丢失。
LoG和Canny算子也因为过度滤波,导致丢失大量的边缘信息,检测性能反而下降。
5总结
在一阶微分算子中,不管是从理论的角度分析,还是后续的实验验证结果来看,Roberts算子对边缘的定位精度较高,但是检测精度一般,容易忽略细节信息,因此Roberts算子更适合边缘较明显,边缘线较长的图像,如立方体、大栋建筑等无过多细小边缘场景。Sobel与其相比,对细节信息的检测较好,但也容易造成误判,在边缘的连续性上不是很好。Prewitt与Sobel相比,误判的情况减少,但在整体成像上略微粗糙。总的来说,三种一阶微分算子在边缘的定位与检测上都有不足之处,在对图像加噪之后更显逊色,除非是边缘特征明显且光线较好的场景下,它们才会有较好的检测效果。
二阶微分算子中,Laplacian算子作为二阶差分,对噪声更加敏感,所以它对无噪声的图像检测效果较好,对有噪声的图像检测效果不但不好,还会加强噪声,因为对噪声的敏感,所以它更适用于滤波后的图像,在4.3小节中的实验结果中也验证了这一点,我们也可以明显看到它良好的检测效果;LoG算子作为Laplacian的改进算子,加入了高斯滤波算法,因此它对于有噪声污染的图像检测效果较好,但对于已经滤波后的图像,会因为过度滤波而导致检测效果不升反降;Canny算子同样作为具有高斯滤波算法的算子,也适用于加噪图像而不适用于滤波图像,但因为其在对边缘点的判断和选取上运用的独特的非极大值抑制与双阈值法,使得它在边缘定位上比LoG更精准,抗噪性能更优越,这几点在之前的实验中也得到了验证。综上,Canny算子在综合性能上优于其它算子,在图像边缘检测研究领域,Canny算子也得到了更为广泛的应用。
参考文献:
[1] 杨新,郭丰俊.一种基于梯度算子的图像匹配算法[J]. 电子学报, 1999, 27(10):30-33.
[2] 王坤明,朱双东,张超.自动选取阈值方法比较研究[J].辽宁石油化工大学学报,2002,22(2):70-73.
[3] 杨晓波.算法时间复杂性分析综述[J]. 西藏大学学报,2011,26(2):87-90.
[4] 王冰.用Roberts算子进行边缘处理[J]. 甘肃科技, 2008,24(10):18-20.
[5] 郎瑶.一种改进的Sobel边缘检测算子[J]. 轻工科技,2011,27(5):59-60.
[6] 石俊涛,朱英,楚晓丽,等. 基于灰色关联度和Prewitt算子的边缘检测新方法[J].微计算机信息,2010,26(29):214-216.
[7] 姜杭毅,蔡元龙.用于图象边缘检测的拉普拉斯-多项式算子[J]. 信息与控制,1988,17(6):26-29.
[8] 贺强,晏立.基于LOG和Canny算子的边缘检测算法[J]. 计算机工程, 2011,37(3):210-212.
[9] 陈强,朱立新,夏德深. 结合Canny算子的图像二值化[J]. 计算机辅助设计与图形学学报,2005,17(6):1302-1306.
[10] 陆成刚.一种灰度图像二值化的自适应全局阈值方法:, CN 104050472 A[P].2014.
[11] 韩思奇,王蕾. 图像分割的阈值法综述[J]. 系统工程与电子技术, 2002, 24(6):91-94.
[12] 齐丽娜,张博, 王战凯. 最大类间方差法在图像处理中的应用[J]. 无线电工程, 2006, 36(7):25-26.
[13] 王群峰,徐迎晖. 结合改进遗传算法与局部阈值法的指纹图像分割[J].自动化与信息工程,2015,36(1):12-17.
[14] 张红颖.改进的Bernsen算法实证研究[J]. 电子世界,2013(4):105.
[15] 张恒,雷志辉,丁晓华. 一种改进的中值滤波算法[J].中國图象图形学报,2004,9(4):408-411.
【通联编辑:唐一东】