改进的Canny算子边缘检测算法研究

2018-01-19 11:35段军张博
软件导刊 2018年10期
关键词:边缘检测迭代法阈值

段军 张博

摘要:针对传统Canny算子边缘检测算法出现伪边缘或边缘丢失的缺陷,提出了一种采用统计滤波去噪和基于灰度的迭代法计算阈值的边缘检测算法。首先统计滤波并使用均值和方差去噪,避免出现如同高斯函数受噪声干扰的问题,保证图像边缘完整性;其次,使用灰度进行迭代计算确定阈值,改进了传统算法中人工确定的不足,使阈值更加准确,减少伪边缘和信息丢失的情况。通过大量实验对比和结果分析表明,改进后的算法与传统算法相比,可以提高边缘检测运行效率,使结果更加清晰、准确。

关键词:统计滤波;Canny算子;边缘检测;阈值;迭代法

DOIDOI:10.11907/rjdk.181305

中图分类号:TP312

文献标识码:A 文章编号:1672-7800(2018)010-0068-04

英文摘要Abstract:The traditional Canny edge detection algorithm exists problems of fake edge and edge loss, so this paper proposed an improved Canny edge detection algorithm.The new algorithm uses statistic wave filtering and interactive threshold to calculate threshold.First of all, averages and variances are employed in statistic wave filtering.Unlike Gauss function,it can avoid noise interference and also keep the integrity of image edges. Secondly, it improves the traditional algorithm by using gray values to calculate threshold. It makes threshold more accurate and reduces the fake edge and edge loss.Verified by a large number of experiments and the result analysis of the programs,the improved algorithm shows that compared with traditional algorithm, it improves the operating efficiency and obtains more accurate and clearer results.

英文关键词Key Words:statistic wave filtering;Canny algorithm;edge detection;threshold;iterative algorithm

0 引言

图像边缘是灰度发生突变的像素点集合,图像边缘包含数字图像重要信息,所以提取边缘信息能够降低图像处理数据量。图像分割对后续操作产生重要影响[1]。图像分割包含图像边缘检测,同时图像理解、分析和图像识别都是在图像边缘检测基础上进行的[2]。受噪声干扰的图像在图像理解方面有难度,导致边缘不易被测出。因此,需要在图像的预处理阶段进行去噪处理,降低对处理后续图像的影响。目前边缘检测常用算子有一阶偏导算子(Roberts算子、Sobel算子、Prewitt算子等)、二阶偏导算子(拉普拉斯算子),两者都是在像素点邻近区域内进行计算,对噪声敏感性较强[3],检测效果不佳[4]。本文通过分析传统Canny算子和其它各种算法,提出一种结合统计滤波和迭代阈值法的改进算法,在一定程度上降低了噪声,同时能够准确提取边缘信息。

1 基本原理

1.1 传统Canny算子边缘检测算法

传统Canny算子因运算时间短、计算过程相对简单,检测结果优于其它边缘检测算子[5],因而得到了广泛应用。好的边缘检测遵循3个准则(信噪比准则、定位精度准则、单边响应准则[6-7])和3个指标(好的检测、好的定位、最小响应[8])。Canny算子符合以上准则和指标,是一种有效的边缘检测方法。

传统Canny算子边缘检测步骤如下:

(1)为得到无噪声图像,使用高斯滤波G=12πσ2exp-x2+y22σ2平滑图像进行去噪,对原始图像进行图像变换,σ是标准差,用来控制平滑程度[9]。当σ较小时,定位边缘准确度高;较大时,可能导致图像过度平滑,丢失一些有用信息,增加运算量,因此要适当选择平滑参数[10]。

(2)使用一阶偏导算子求出水平Gx和垂直Gy的方向偏导数,并求出图像灰度梯度幅值和方位角度θ=arctanGyGx[11]。

(3)对得出的梯度幅值在梯度方向上进行非极大值抑制,找到局部最大值点。若为最大值点则标记为可能的边缘点,否则进行抑制,将梯度幅值置为0[12]。經过非极大值抑制后,非边缘点被排除,剩下的为边缘点。非极大值抑制能够准确定位边缘位置,并进一步细化边缘检测,使边缘变得更精细、准确[13]。

(4)用高低阈值检测并连接边缘。人为确定高低两个阈值T1和T2,对图像中的每一像素点进行验证,如果像素大于T1,则将该点判定为边缘点,如果低于T2,则不是边缘点。将在两阈值之间的像素点和在像素邻域中的像素点进行对比,在邻域中寻找像素大于高阈值的像素点,若找到则将该像素点记为边缘点,否则不是边缘点。将高低阈值分别作用于原图像,得到两幅阈值图像[14],低阈值得到的图像保留的边缘比高阈值得到的图像多,以低阈值图像中的边缘为基础,将高阈值图像中丢失的边缘补全,并连接边缘,得到边缘检测结果[15]。

1.2 传统算法缺陷

在传统Canny算子中,高斯函数中的方差σ对图像预处理阶段的平滑去噪效果有一定影响,并且一阶偏导算子对噪声敏感,容易出现过度平滑,减少检测到的边缘数量[9]。同时,传统算子采用人工确定阈值的方法,主观性较强,且费时费力,如果选取的阈值较大,会导致边缘丢失,如果选取的较小,则出现假边缘,导致结果不准确。

通过对传统Canny算子边缘检测算法的分析,本文在传统算法的基础上进行改进,提出使用统计滤波去噪和迭代法确定阈值的新思路。

2 Canny算子边缘检测算法改进

2.1 统计滤波去噪算法

噪声在任何图像中都不可避免,已经众多学者提出了图像去噪算法,如中值滤波、小波变换去噪、灰度形态学去噪等方法,但已有的算法对噪声敏感,去噪效果不理想,甚至去除了一些图像特征信息,造成图像处理困难。因此选择有效的去噪算法对边缘检测很重要[16]。在传统的Canny算子中,使用高斯函数与原图像卷积进行滤波,该过程需要使用高斯函数一阶导数,噪声属于高频信号,且噪声w自身的数量级要比高斯函数高一个次方,所以当高斯函数增加时,噪声也呈幂指数增长。另外高斯函数容易受到噪声干扰,使图像边缘模糊,不易分辨。且高斯滤波算法复杂度很高、运行效率低。图像中出现噪声是一种多维随机过程,可以用统计概率的相关知识进行处理。综上分析,在改进算法中使用统计滤波去噪代替高斯滤波,降低噪声对滤波函数的影响。

在邻域w内,通过方差体现像素变换特点,而噪声是满足统计特性的一种多维随机过程,可以利用噪声的统计特性去除噪声,而不引入其它多余性质,以免给图像带来新的噪声干扰。因此,将方差作为平滑去噪的一个参数,能够避免外界因素对平滑去噪的影响。

3 分析与讨论

在平台上使用C#編程语言实现算法,验证本文改进算法准确性和可行性,并从主观和客观两方面对算法作出评价。在验证算法的过程中进行了大量实验,从众多实验结果中选取3幅图作为代表进行算法分析。

3.1 主观评价

传统算法与本文改进算法的实验结果对比如图2-图4所示。其中图2-图4中(a)为原始灰度图像,(b)为传统算法中阈值选取较低时边缘检测结果,(c)为传统算法中阈值选取较高时边缘检测结果,(d)为改进算法的边缘检测结果。通过对比结果可以发现,传统算法在进行边缘检测时,会出现边缘缺失、边缘重复或伪边缘的情况,继而出现边缘和原图像不符,对图像理解造成一定影响。本文改进算法能够避免出现边缘丢失、重复等现象,检测出的边缘基本与原图像吻合,最终检测结果效果较好,能更方便查看。

3.2 客观评价

不同的阈值选取带来不同实验结果。传统算法中由人工确定双阈值,带有一定主观性。如果阈值选取过低,会出现边缘重复或伪边缘,而当阈值选取过高,部分边缘会丢失。统计边缘点数量反映阈值选取的好坏程度,是边缘检测评判标准。边缘点过多说明选取的阈值过低,边缘点数量过少则说明选取的阈值过高。表1和表2 展示了传统算法和改进算法中阈值对边缘检测的影响,表1列举了利用传统算法进行边缘检测时选取阈值过高和过低时对图像边缘的影响。其中在人工选取的双阈值中,高阈值为TH,低阈值为TL,边缘点数量为Amount。表2中IT为改进算法的边缘检测阈值,Amount为边缘点数量。

通过上表可以看出,对同一幅图像,以从小到大的顺序选取阈值时,检测出的边缘点数量由多变少,说明当阈值过低时,出现了多余边缘,阈值过高时,一些边缘丢失。由此可见,阈值选取能影响边缘检测结果,对MSE边缘检测极为重要。改进之后的阈值确定方法使用图像MSE自身灰度,通过算法计算确定阈值,因此准确度与人工方法相比大幅提升,避免了传统算法中阈值选取不合适的情况。PSNR改进算法只需要一个阈值即能确定边缘,比传统算法人工确定的阈值准确,并且改进后的边缘点数量适中,此时检测出的边缘轮廓最接近原始图像。

图像质量的客观评价指标通常有均方误差,峰值信噪比PSNR等,MSE表示原图像和检测图像的均方根误差,代表两幅图像的相似程度。越小,代表两幅图越逼近,相似程度越大。PSNR越大,信号占得比例越大,图片质量越高。表3和表4分别计算了图2-图4的(b)、(c)、(d)3幅图的MSE和。

由上表数据分析可知,本文改进算法与传统算法相比,降低了均方误差,提高了峰值信噪比,改进算法的边缘检测结果与原始图像的边缘更为接近。而且图像中的信息占比增大,平滑去噪效果较好。通过上述在算法阈值选取、边缘点数量统计及计算图像客观评价指标等方面的对比可知本文改进算法可行,且准确性比传统算法高。

4 结语

本文通过对传统Canny算子边缘检测进行分析,指出了传统Canny算子在滤波去噪和阈值确定方面的不足,并加以改进,使用统计滤波去噪代替传统的高斯滤波去噪,利用基于图像自身灰度的迭代法确定阈值,代替传统算子中人工确定阈值,提高阈值准确度。本文改进后的算法与传统算法相比,运行结果中假边缘数量明显减少,边缘位置能准确确定,算法去噪效果提高,因此本文的改进算法在边缘检测方面可行且有效。

参考文献:

[1] 聂方彦,李建奇,张平凤,等.一种基于Tsallis相对熵的图像分割阈值选取方法[J].激光与光电子学进展,2017,54(7):137-144.

[2] 杨婷,段书凯,王丽丹,等.基于改进忆阻细胞神经网络的彩色图像边缘提取[J].中国科学:信息科学,2017,47(7):863-877.

[3] 何春华,张雪飞,胡迎春.基于改进Sobel算子的边缘检测算法的研究[J].光学技术,2012,38(3):323-327.

[4] 宋睿,张合新,吴玉彬,等.激光主动成像图像边缘检测算法研究[J].激光与光电子学进展,2017,54(8):159-166.

[5] 赵岩,周百灵.一种改进的改进的基于Canny边缘检测算法[J].吉林大学学报,2012,50(4):740-744.

[6] 张桂梅,孙晓旭,陈彬彬,等.结合分数阶微分和Canny算子的边缘检测[J].中国图像图形学报,2016,21(8):1028-1038.

[7] 陈晓丹,于鸣,黄英来,等.改进Canny算子对乐器板材的纹理分析[J].哈尔滨理工大学学报,2017,22(4):46-50.

[8] 张石,董建成,佘黎煌.医学图像分割算法的评价方法[J].中国图像图形学报,2009,14(9):1872-1880.

[9] 薛丽霞,李涛,王佐成.一种自适应的Canny边缘检测算法[J].计算机应用研究,2010,27(9):3588-3590.

[10] 李俊山,马颖,赵方舟,等.改进的Canny图像边缘检测算法[J].光子学报,2011,40(S1):50-54.

[11] 侯守明,王阳,唐琪博,等.一种基于偏微分方程和Canny算子的图像分割方法[J].山西大学学报,2017,40(4):676-682.

[12] 孙砚飞,常晓刚,李东兴,等.基于自适应Canny的红外图像边缘检测算法[J].山东理工大学学报,2017,31(6):18-21.

[13] 叶德周,杨风健,貌程浩,等.基于Canny算子的红外影像边缘检测算法[J].激光与红外,2015,45(9):1129-1132.

[14] 辛玉欣,王传洋.一种基于Canny算子的图像边缘检测方法[J].信息与电脑,2017(18):37-38,41.

[15] 史久根,张亚.一种改进的自适应Canny算子边缘检测算法[J].仪器仪表学报,2011,32(12):255-260.

[16] 王伟佳,于雪莲,马文书,等.基于改进P-M模型与加权复合型中值滤波的非球面干涉图去噪方法[J].激光与光电子学进展,2016(3):83-87.

(责任编辑:江 艳)

猜你喜欢
边缘检测迭代法阈值
迭代法求解一类函数方程的再研究
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
比值遥感蚀变信息提取及阈值确定(插图)
室内表面平均氡析出率阈值探讨
迭代法求解约束矩阵方程AXB+CYD=E
预条件SOR迭代法的收敛性及其应用
求解PageRank问题的多步幂法修正的内外迭代法