APP下载

一种基于改进Canny算法的图像边缘检测新方法

2023-09-04张晨阳曹艳华杨晓忠

计算机仿真 2023年7期
关键词:微分像素点算子

张晨阳,曹艳华,杨晓忠

(华北电力大学数理学院,北京 102206)

1 引言

数字图像的边缘信息对于图像本身意义重大。边缘检测是数字图像处理中的重要内容,是处理过程中的关键环节,目的是提取图像的边缘轮廓信息,去除其它信息[1]。

边缘检测的一般方法是利用整数阶微分梯度算子模板与图像卷积实现。常见的一阶微分梯度算子有:Prewitt算子、Canny算子、Sobel算子等[2];常见的二阶微分梯度算子有:LoG算子是基于过零点的边缘检测[3]。其中Canny算法因其可以平滑噪声、边缘检测效果好而被广泛应用。经典的Canny算法不能抑制局部噪声,在检测边缘时,会丢失一些灰度值变化不大的边缘。针对上述问题,李俊山等(2011年)[4]采用3×3邻域代替传统Canny算子中的2×2邻域,不仅能够抑制噪声,而且能够较好检测出边缘信息,检测精度高。

分数阶微积分是整数阶微积分的拓展,是分形学的基础之一[5]。由于分数阶微分具有弱导数性质,可以在增强图像高频区域信息的同时非线性保留图像低频轮廓信息,因此被广泛应用于信号分析和图像处理中,如图像融合、图像增强和图像边缘检测等。Mathieu等(2003年)[6]构造了一种基于分数阶微分的CRONE边缘检测算子,当阶次在-1

本文针对传统Canny边缘检测算法关于检测弱边缘图像会使边缘模糊,难以准确确定边缘位置,以及在检测纹理丰富的图像时,容易造成伪边缘等问题进行研究。在数字图像中, 相邻像素之间的灰度值是密切相关的,对于纹理丰富的区域以及弱边缘区域,用分数阶微分处理都能够得到很好的增强或保留。通过总结,将分数阶微分和Sobel算子引入Canny算法中,使Canny边缘检测可以适用于更多场景。本文主要研究工作:

1)首先结合分数阶微分和各向同性Sobel算子构造四方向分数阶梯度算子,将此算子引入Canny边缘检测算法的梯度计算中,不仅可以较好的检测出不同方向的边缘,而且可以有效抑制噪声,使检测出来的边缘更加完整准确。

2)其次采用改进的非极大值抑制方法,考虑中心像素与邻域内像素梯度的关系,同时考虑中心像素自身和整体梯度图像的关系,减少了伪边缘的产生。

3)最后采用Otsu算法确定阈值连接边缘,以免受到人为设置阈值的约束。

2 分数阶微分和梯度算子

2.1 分数阶微分的定义

分数阶微分经典的三种时域定义分别为Grünwald-Letnikov、Caputo和Riemann-Liouville定义。G-L定义可化为卷积形式适用于图像处理,是将连续函数的整数阶定义推广到分数阶,是图像处理中常用的分数阶微分定义[5]。

设信号f(t)满足f(t)∈[a,t],存在m+1阶连续导数,对于∀v∈R,[v]代表其整数部分,当v>0时,m至少取到[v],那么信号f(t)的v阶导数定义如下

(1)

将一元信号f(t)的周期[a,t]按h=1等间隔划分,得到一元信号的分数阶差分表达式

(2)

对于数字图像,分数阶差分表达式如下

(3)

(4)

2.2 四方向分数阶Sobel算子

设灰度图像函数为f(x,y),将各向同性Sobel算子与像素点(x,y)的8-邻域区域卷积,计算得到像素点(x,y)的梯度差分表达式

+f(x-1,y-1)-f(x+1,y-1)]

(5)

+f(x,y+1)-f(x+1,y)]

(6)

+f(x+1,y+1)-f(x+1,y-1)]

(7)

+f(x,y-1)-f(x+1,y)]

(8)

其中G00,G450,G900,G1350分别代表水平梯度、450方向梯度、竖直梯度以及1350方向梯度。对图像等间隔采样,设置步长Δx=2,以G00,G450为例,将差分表达式转化为微分形式

(9)

(10)

将上述微分形式的整数阶用分数阶来替代,得到

(11)

(12)

+f(x+1,y-1)-vf(x,y-1)

-vf(x-1,y)+avf(x+1,y)

(13)

由(13),推得水平方向和450方向分数阶Sobel算子的模板为

根据同样的计算方法得到竖直方向和1350方向的分数阶Sobel算子模板

3 改进的Canny边缘检测算法

3.1 传统的Canny算法

传统Canny边缘检测算法的步骤[12]:①对灰度图像进行高斯滤波处理;②利用2×2大小的差分模板计算图像的梯度;③对梯度幅值进行非最大值抑制,保留局部最大值,可以细化边缘;④用双阈值算法检测和边缘连接。

3.2 基于分数阶Sobel算子的Canny算法

3.2.1 四方向分数阶Sobel算子计算梯度

用四方向分数阶Sobel算子分别与待测图像进行卷积运算,得到像素点的四方个向梯度G1(x,y),G2(x,y),G3(x,y),G4(x,y),像素点(x,y)的梯度G(x,y)和角度φ(x,y)如下[13]

(14)

φ(x,y)=arctan[G4(x,y)/G1(x,y)]

(15)

3.2.2 改进的非极大值抑制

为了精准细化梯度幅值图像的宽边缘,需要对梯度图像进行非极大值抑制,剔除一部分非边缘点。将梯度方向离散为1、2、3、4四个方向,分别代替0°、45°、90°、135°方向,如图1所示,四个扇区可以对应3×3邻域内的8个点。

图1 梯度方向对应图像

使像素点(x,y)的梯度方向φ(x,y)映射到离它最接近的方向上,若中心像素梯度方向属于第2方向且满足

G(x,y)>T1且G(x,y)>T2

则判定该像素点(x,y)为局部最大值点。

其中T1为梯度图像的平均灰度值,T2=max{G(x+1,y+1),G(x-1,y-1)}。

3.2.3 Otsu算法确定阈值

Otsu算法是一种可以根据图像自身灰度直方图自适应确定阈值的一种算法[14,15]。假设图像尺寸为M×N,灰度级范围为[0,L-1],将图像分为两类,记C0类为灰度级在[0,t]之间的像素点,C2类为灰度级在[t+1,L-1]的像素点,分割阈值为t。属于C0类的像素点占全幅的比值记为p0,C1类的像素点占全幅比值记为p1。C0类和C1类的平均灰度级表示为u0,u1,图像总平均灰度记为u,类间方差记为σ。那么

u=p0*u0+p1*u1

(16)

σ=p0(u0-u)+p1(u1-u)

(17)

当σ达到最大时,灰度级T为最佳阈值,记为最高阈值Th,本文设置最低阈值为Tl=0.4*Th。

3.2.4 算法实现步骤

本文算法具体实现步骤:1)对灰度图进行高斯滤波处理;2)使用四方向分数阶梯度算子计算图像梯度和方向;3)用改进的非极大值抑制细化边缘;4)通过Otsu算法确定双阈值,对图像进行边缘连接。

4 仿真研究

4.1 边缘检测定性分析

将本文提出的新算法与现有几种经典边缘检测算法对比分析,实验在MATLAB R2018 a的环境下进行。选取三类图像进数据仿真处理,用Prewitt算法、Canny算法、Sobel算法、LoG算法和本文算法进行实验,得到实验效果对比图。对Lena图像进行边缘检测得到图2。

图2 Lena图像边缘检测结果

由图2可知,Sobel算法和Prewitt算法检测的边缘不全面不连续,但检测到的部分比较清晰。LoG算法能够检测到较为丰富的边缘,但对于噪声不敏感且检测效果比较模糊。显然,本文算法和经典Canny算法优于其它三种算法。经典Canny算法和本文改进的Canny算法在进行高斯滤波时均选取相同的参数,边缘检测后,经典Canny算法产生的伪边缘较多,本文算法相较经典Canny算法对于噪声不敏感,线条连续不杂乱。

选取电路板控制器图像,图像来源于文献[1],来验证本文算法对于复杂图像的边缘检测效果,得到图3。

图3 电路板控制器边缘检测结果

由图3对比看出,本文改进的Canny算法能够保证边缘完整,同时检测边缘仍然清晰,具有较好的图像检测效果。

为了验证本文算法的抗噪性能,对rice图像加入0.05的椒盐噪声,分别使用本文提到的五种算法进行边缘检测,如图4。

图4 添加椒盐噪声的rice图像边缘检测结果

图4可以看出,Sobel算法和Prewitt算法受噪声影响很大,使图像边缘模糊,以至于几乎检测不到边缘信息。LoG算法具有一定的抗噪性能,但是边缘依旧模糊。本文算法和Canny算法明显优于Sobel算法、Prewitt算法和LoG算法。本文算法检测的图像边缘完整准确,经典Canny算法也能够提取出比较完整的图像边缘,但受噪声影响比较大,出现了一些连续的噪声轮廓。

4.2 实验结果定量对比

为了进一步客观说明本文算法的可靠性,采用文献[16]的标准对图像边缘检测的效果进行评价。其中A代表检测出的边缘点总数,即边缘图像中像素值为1的个数;B代表满足8-连通条件的边缘点的个数;比值B/A可以表示边缘完整度,其值越小,不连续点越少、边缘连通性越好、边缘完整度越高。统计结果如表1所示,从数据可以看出,本文算法B/A的比值更小,边缘检测具有更高的准确性,边缘完整度更高。

表1 边缘图像统计表

对五种算法执行效率进行对比,实验数据如表2,表2中的数据是五种算法100次边缘检测实验取得的平均值。由统计数据得出,本文改进的Canny算法的检测效率与LoG算法和经典Canny算法相近。

表2 算法执行效率对比

5 结论

本文提出改进Canny算法的图像边缘检测新方法,首先基于分数阶微分构造分数阶Sobel算子,其次使用改进的非极大值抑制方法细化边缘,最后利用Otsu算法计算双阈值。仿真结果表明,本文算法相比已有的Canny算法、Sobel算法和LoG算法等,对伪边缘有一定的抑制效果,边缘定位准确,抗噪能力强,能够检测出比较完整清晰的图像边缘,是一种有效可行的图像边缘检测算法。

猜你喜欢

微分像素点算子
拟微分算子在Hp(ω)上的有界性
基于局部相似性的特征匹配筛选算法
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
上下解反向的脉冲微分包含解的存在性
一类Markov模算子半群与相应的算子值Dirichlet型刻画
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
Roper-Suffridge延拓算子与Loewner链
借助微分探求连续函数的极值点