一种基于改进Canny算子的边缘检测算法

2022-09-02 03:23周琦宾
制造业自动化 2022年8期
关键词:椒盐高斯滤波器

余 波,吴 静,周琦宾

(1.西南科技大学 信息工程学院,绵阳 621010;2.西南科技大学 四川省特殊环境机器人技术重点实验室,绵阳 621010)

0 引言

获取图像中感兴趣区域的边缘信息是图像目标识别过程中至关重要的一个步骤,随着图像处理技术的发展,国内外学者已经提出了一系列边缘检测方法。常见的边缘检测算子有Robert、Sobel、Prewitt等[1],基本原理是计算局部区域窗口的梯度,对目标检测图像中的噪声敏感性强,检测效果不佳;John Canny[2]首次提出基于最优化思想的Canny算子,能够准确定位边缘信息;刘丽霞等[3]利用具有边缘保持特性的引导滤波器来代替高斯滤波,同时采用大律法自适应选取高、低阈值。

上述方法在面对目标图像椒盐噪声过重时,检测出来的边缘不够平滑,还伴随着一些伪边缘的产生,造成局部特征信息丢失,对感兴趣区域识别精度不高,因此解决图像目标检测中的椒盐噪声问题十分重要。为了更好地减少椒盐噪声和伪边缘的出现,改善边缘连接平滑程度,本文提出一种基于改进Canny算子的边缘检测算法。首先,利用一种混合滤波器来替代原始算法中的高斯滤波器,然后分别通过四个方向来计算图像的梯度幅值,最后使用最大类间方差法(Otus算法)实现自动选取阈值,提高算法的自适应性。

1 改进Canny算子

1.1 混合滤波器设计

经典的Canny算子是利用高斯滤波器来实现图像的平滑滤波,这种无差别滤波方式会造成边缘信息模糊甚至丢失,为了减小在图像边缘检测中的椒盐噪声干扰,提出了一种基于新颖滤波器和均值滤波器结合的混合滤波方法。其中新颖滤波器的原理是用一个N×N维的元素矩阵A与原图像f(x,y)运算得到子图像f1(i,j),记下此时的中心像素点为E(i,j),生成的子图像再和单位矩阵I的列向量进行运算生成子图像f2(i,j);同样的,将此子图像与单位矩阵I的列向量进行运算,去掉一个像素最大值和像素最小值后得到子图像f3(i,j),用此时的子图像f3(i,j)与E(i,j)进行比较,筛选出合适的中心像素点,以此来达到滤波消除椒盐噪声的目的,此滤波器的数学模型如下:

其余的图像矩阵可以根据式(2)计算得到,于是子图像f2(i,j)、f3(i,j)为:

均值滤波器是一种邻域空间处理算法,基本改进原理是由邻域内像素平均值来代替个像素点的值,选择一个m×m的模板S,将S与其在原图像f(x,y)形成的覆盖矩阵进行运算得到子图像f1(i,j),然后用该子图像与单位矩阵I的列向量进行运算得到子图像f2(i,j),用子图像f2(i,j)再与单位矩阵I的列向量做一次运算,去掉像素中的最大值和最小值,用此时计算出的平均值来代替原来图像的中心像素点,根据式(1)、式(2)可以构建出数学模型如下:

由此得到的新图像f2(i,j)如下:

与传统的高斯滤波相比,混合滤波器在进行图像平滑操作的同时保护了图像边缘信息,去除大部分椒盐噪声,因此提高了图像边缘检测的精度。如图1所示,在含有10%椒盐噪声的图像滤波实验中,高斯滤波的处理效果不佳,得到的图像比较模糊;而混合滤波器能够消除大量的椒盐噪声,图像边缘细节信息保留完整并且轮廓比较清晰。图2则是在原始图像上加入了σ=0.1的高斯噪声,从实验结果可以看出,混合滤波器在处理含有高斯噪声的图像上也有一定的优势。

图1 10%椒盐噪声滤波对比

图2 σ=0.1高斯噪声滤波对比

1.2 梯度幅值计算方法的改进

经典Canny算法采用邻域一阶偏导的有限差分法来计算幅度梯度值[4],此方法能够较好的定位图像边缘,但对噪声较为敏感。为了进一步减少噪声的干扰,计算图像邻域梯度幅值时,以x,y方向为基础,拓展45°方向和135°方向的梯度幅值,各方向梯度分量的数学表达式如下:

四个方向的梯度模板如图3所示。

图3 方向矩阵图

梯度幅值为:

梯度方向为:

1.3 自适应阈值选取

Canny算法中阈值设定是较为关键的一步,合适的阈值能同时减少毛边产生和对噪声抑制,有利于后续图像边缘点的连接,经典Canny算法中阈值选取是通过实验人工设定,这种人工选取的方式大大降低了算法的自适应性。因此,本文采用Otus算法实现边缘连接时自适应选取高、低阈值。

Otus算法[5],也称最大类间方差法,特点是能够依据图像的灰度直方图信息自动完成阈值选取。现有大小为M×M的目标图像,灰度值范围为[0,L-1],将图像中灰度值小于t的像素点归为一类C0,即[0,t]∈C0,其余像素点归为一类C1,即,[t+1,L-1]∈C1,则数学模型表示如下:

其中i为图像的灰度值范围,Pi为灰度值i出现的概率,P0(t)、P1(t)分别表示类别C0、C1出现的概率,u0(t)、u1(t)分别表示类别C0、C1的平均灰度。根据上述结果,可以得到图像的类间方差表达式如下:

经过反复迭代,当类间方差最大时的分割阈值即为最优阈值,此时低阈值Tl=Th/2,而高阈值Th为:

2 实验结果及分析

本次实验的平台为Windows10下的Matlab2016,选取多景图像并加入10%的椒盐噪声干扰,通过对比滤波器的滤波性能以及图像边缘检测的连续性和平滑性,共两组实验来评估本文算法的有效性。

实验1的结果图如图4所示,经过σ=0.8的高斯滤波后的图像中仍存在大量的椒盐噪声,图像边缘信息比较模糊,滤波效果并不好;而经过本文中混合滤波器处理的图像极大程度上抑制了椒盐噪声,图像整体边缘提取非常完整、平滑。

图4 边缘检测实验1结果图

此外,引入图像质量评价指标信噪比(SNR)[6]与峰值信噪比(PSNR)[7],进一步对本文中的混合滤波器性能进行评估,其中SNR与PSNR的值越大,表明检测图像的质量越高,从而反映出滤波器对噪声的处理能力更强。从表1可以看出,本文中的混合滤波器(Hybrid filter)的性能是优于高斯滤波器的。实验2通过引入其他几种边缘检测算法做为对比,验证本文算法(Proposed method)在整体图像边缘检测的性能,检测结果如图5所示。从实验结果看出,针对不同背景下含有椒盐噪声的图像各类算法处理结果存在较大差异,其中传统Canny算法抑制了一部分椒盐噪声,但是边缘检测的效果不佳,出现很多伪边缘;LOG算法处理后的图像仍存在大量噪声点且目标边缘模糊;Roberts算法处理后的图像边缘细节丢失比较严重,提取精度不高;文献[8]中的方法能够滤除大部分噪声,目标边缘清晰,但边缘存在间断,没有完整体现整个检测目标的轮廓信息;经本文方法处理的图像不仅对噪声的抑制效果好,还保留了边缘的完整性和清晰度。

图5 算法检测结果对比图

表1 滤波效果评价表

图6是通过分析不同算法的边缘点信息来进一步证明本文方法的实用性。其中E/F数值越小表明检测出的图像边缘更加平滑;E/T值越小表明边缘的连接程度更好。从图中可以看出本文算法的边缘平滑性和连接程度都优于其他积累算法。

图6 边缘连接参数图

3 结语

对比传统Canny算法、Log算法、Robert算法等仅适合检测椒盐噪声较少的图像,改进后的Canny算子对存在较多椒盐噪声的图像检测效果有明显改良,解决了边缘提取精度低、效果差等问题。经实验结果表明,本文提出的方法能够去除绝大部分图像中存在的椒盐噪声,且目标边缘提取效果好,保留了边缘的细节特征,具有完整性、平滑性。由于图像中存在的噪声多种多样,不仅仅局限于椒盐噪声,研究一种能够滤除其他噪声的边缘提取算法是今后研究的方向。

猜你喜欢
椒盐高斯滤波器
学做椒盐虾
数学王子高斯
天才数学家——高斯
从滤波器理解卷积
开关电源EMI滤波器的应用方法探讨
一种微带交指滤波器的仿真
基于TMS320C6678的SAR方位向预滤波器的并行实现
从自卑到自信 瑞恩·高斯林
椒盐芝麻烧饼
椒盐卷饼