基于Matlab/GUI 的数字图像边缘检测算法研究

2022-07-21 03:40华康民
无线互联科技 2022年9期
关键词:标准差导数算子

魏 林,华康民

(郑州航空工业管理学院 实验室与设备管理处,河南 郑州 450000)

1 传统数字图像边缘检测算法介绍

边缘检测就是找出图像灰度在某一处发生剧烈变化的位置[1],经典的边缘检测算子利用图像边缘一阶导数极值点和二阶导数过零点进行图像的二值化[2]。利用边缘检测算子进行数字图像的处理过程如图1所示。

图1 边缘检测过程

1.1 梯度算子

Roberts 算子是最简单的一阶微分算子,利用一阶导数峰值检测边缘点,通过将2×2 的算子模板带入计算,分别在垂直和水平方向进行一阶导数计算求和,并在图像对角线方向上相邻的差值求梯度幅值,所以在水平和垂直方向对图像检测精度很高,对噪声很敏感,同时检测较为粗糙,边缘易丢失。

Prewitt 算子为了减少在检测过程中受到的噪声影响,该算子模版算子由2×2 变为3×3,这是一种理想情况下的图像边缘,用来检测图像,得到的梯度幅值最大值作为输出值。

Sobel 算子与Prewitt 算子类似,都是3×3 的模板,只是在模板方向上不同,而且都是利用方向差分运算与局部运算相结合的方法[3]。 与Prewitt 类似,Sobel 算子在计算的时候体现了很好的方向性,检测的边缘都是与模板最类似的点,通过加权平均运算,与卷积算子运算后代入,便可得到图像的边缘幅值,然后利用幅值与选定的阈值TH 进行比较,若P(x,y)>TH,则选定该点作为边缘点,从而完成对图像的二值化,Sobel 算子对图像的检测体现较好的方向性,也更加与模板检测点趋同。

1.2 基于二阶导数的边缘检测算子

Laplace 算子利用图像边缘剖面二阶导数过零点的特性进行边缘检测,Laplace 算子在运算过程中作为一个标量,在具有等斜率的宽区域上,有可能将全部区域都当作边缘检测出来[4]。 在没有噪声干扰的情况下,Laplace 算子检验时表现出方向的丢失,在加入噪声的情况下,边缘严重丢失,对噪声非常敏感。

Log 算子在检测过程中,首先进行噪声的去除,然后再利用差分算子进行运算找出图像边缘。 在求二阶导数之前先进行平滑滤波,一般认为加性噪声服从正态分布,针对这一点选择高斯平滑滤波器进行去噪[5],再利用Laplacian 锐化滤波器进行处理,从运算的结果零交叉来得到图像的边缘信息,这种算子的特点就是对图像的抗噪性能较好。

Canny 算子边缘检测的方法是寻找图像梯度的局部最大值,Canny 算子设定了两个阈值,并分别检测出强边缘和弱边缘,而且仅当强边缘和弱边缘相连时,弱边缘才会包含在输出中[6]。

2 特定阈值对边缘检测实验分析

2.1 特定阈值实验

该实验对于一阶导数的实验,有默认阈值和获取外部阈值两种方式,并可选取方向,对于二阶导数的试验有默认阈值和获取外部阈值两种方式,并结合标准差对图像进行检测,在Matlab 中edge 函数用于对灰度图像进行边缘提取,返回的是与读取图像大小一样的二进制图像BW,语法如下:BW=edge(I,‘method’,thresh,directions,sigma),本文设计的基于Matlab/GUI的图像边缘检测系统即将edge 函数内置到系统中,通过编程呈现可视化的界面实时进行检测。

在一阶算子中采用的都是算子模板,通过计算得到梯度之后,与默认阈值或外部阈值相比较,再对图像二值化,就可以得到检测后的图像。 下面就只针对默认阈值,在二阶算子中,Laplace 算子由于在edge 函数中不能被运用,所以本实验用的是它的算子模板,利用graythresh 函数,计算的是一个全局阈值,在使用im2bw函数将灰度图像转换为二值图像时,这种通过系统自动计算的阈值被称作默认阈值,而其他算子都通过edge 函数来计算。

上述对图片采用的是默认阈值,而且对于一阶算子采用的都是both 方向,从实验结果也可看到阈值,检测同一图片的默认阈值如表1 所示。

表1 检测同一图片的默认阈值

根据以上默认阈值,设定3 个在此范围段的阈值,分别为0.005,0.05,0.1。 下面就同一幅图片,一阶算子方向为both 下,二阶算子的标准差均为2,在不同阈值的不同算子之间的图像效果对比来探究实验结论。

2.2 特定阈值实验分析及结论

通过实验从横向和纵向分别来对比图像在不同阈值下的变化规律。 首先,从横向对比,同一阈值下的各算子在处理图像时表现出个体差异,当阈值为0.005时,Log 算子检测的图像边缘最佳,且细节也较丰富,而对于其他算子检测边缘都很不清晰,对于Log 算子当阈值大于0.005 时,图像几乎看不到,说明该算子对较小阈值敏感。 Canny 算子检测的图像相对而言图像细节更丰富,方向感更好,也体现出来Canny 算子是一种较优的检测算子。 纵向对比,可发现对同一算子阈值越小,图像边缘越清晰,细节越丰富,反之,阈值越大,边缘丢失越严重,可看出阈值越小,检测的边缘越杂乱且丰富,当增大阈值后,图像边缘开始变得不清晰,当阈值为0.1 时,边缘已经几乎不见。 二阶算子利用二阶导数过零点检测图像在检测过程中检测效果要优于一阶算子,在存在噪声干扰时,一阶算子对噪声较为敏感,因此一种好的边缘检测算法要具有较强的抗噪性。

3 标准差对于边缘检测算子的实验分析

3.1 实验仿真结果

在Log 算子和Canny 算子检测边缘的时候,第一步往往都是通过高斯滤波器先除掉噪声,那么在高斯函数中,Sigma 作为其标准差,决定了去噪的效果,通过对Log 算子和Canny 算子在各种不同的Sigma 值下的检测图像对比得出结论,如图2—5 所示。

图2 Sigma=1 时的Log 和Canny 算子检测

图3 Sigma=2 时的Log 和Canny 算子检测

图4 Sigma=3 时的Log 和Canny 算子检测

图5 Sigma=4 时的Log 和Canny 算子检测

3.2 实验分析及结论

从实验结果对比可以看出,标准差的大小决定抑制噪声的效果,从Log 算子的图像纵向比较来看,Sigma的值越大,对相应图像的去噪效果越好,从图4 可以看出,当Sigma=3 时,噪声已经不存在,但当继续增大标准差时会发现,图像的边缘信息开始丢失。 可以看出标准差有平滑图像边缘的作用,在一定范围内,标准差的值变大,平滑效果越好,但同时图像边缘丢失也越来越明显。

但从Canny 算子检测的效果图来看,对于不同的算子,其标准差的选取不太一样,Canny 算子比Log 算子有更好的对标准差的适应性,在标准差上的选取上有一个较大的选取空间,而且效果要比Log 算子好,检测的轮廓更清晰,且边缘更丰富。

4 几种算子的改进及实验分析

4.1 改进方法

为了增强Sobel 算子其在各方向上的敏感度,改进的算子提出了增加其方向模板的方法,分别在0°和90°的基础上增加45°,135°,180°,225°,270°,315°方向上的模板,来进行卷积运算。

从以上实验可以看出,传统的Laplace 算子边缘检测过程中,方向丢失而且由于是双倍加强了图像对噪声的敏感,检测出图像的边缘不连续,在已有的算法中,所用的模板是8 个方向的,分别是0°,45°,90°,135°,180°,225°,270°,315°在此基础上增加8 个方向模板,分别为22.5°,67.5°,112.5°,157.5°,202.5°,247.5°,292.5°,337.5°,并改变模板中的参数,更改的目的就是能够更精确地检测边缘。 下面就针对改进过后的算法带入检测系统,实验仿真如图6—7 所示。

图6 Sobel 算子改进前后检测

图7 Laplace 算子改进前后检测

4.2 实验分析

从以上实验结果分析对比可以看出,改进后的Sobel 算子首先对图像边缘的连续性控制得更好;其次对图形的噪声去除效果更强;最后,图像的精细程度明显好于改进前,因此可以看出改进后的Sobel 算子具有一定的优越性。

对于Laplace 算子,从前后实验结果图对比可以看出,改进之后的Laplace 算子由于在模板上增加了8 个方向,而且参数也更小,这样检测的图像可以看到如果没有噪声干扰,能够得到很好的检测结果,也避免了方向的丢失,可以提高边缘检测的精度,同时又合理地设置了参数,因而避免了一些伪边缘的提取[8]。

5 结语

本文通过基于Matlab 的GUI 开发出来了一个可视化的图像处理界面,简单易懂,能够非常清晰地反映出检测前后的图形对比情况,把Roberts,Prewitt,Laplace,Log,Canny 经典的算子在应用模块中得到了实现,并研究了在一定阈值和标准差下图像的变化规律,并实现了在加入噪声之后图像的变化对比,检测的最终目的是抑制噪声、定位准确和低重复响应,从复杂烦琐的实验结果中找出差异,进行横向、纵向对比,最后提出了对Laplace 算子和Sobel 算子模版的几点改进意见,并得到了实现。 总体来看,边缘检测算子还有很多领域亟待研究,未来在算法改进方面应加强对噪声的抑制和通过特定阈值并加入多个方向来控制精细边缘输出,并针对不同类型的图片提出特定的算法解决方案。

猜你喜欢
标准差导数算子
解导数题的几种构造妙招
拟微分算子在Hp(ω)上的有界性
用Pro-Kin Line平衡反馈训练仪对早期帕金森病患者进行治疗对其动态平衡功能的影响
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一类Markov模算子半群与相应的算子值Dirichlet型刻画
关于导数解法
Roper-Suffridge延拓算子与Loewner链
导数在圆锥曲线中的应用
对于平均差与标准差的数学关系和应用价值比较研究
函数与导数