APP下载

基于Canny算子的图像边缘检测方法改进研究

2016-09-10冯永亮

计算机与数字工程 2016年8期
关键词:邻域算子梯度

冯永亮

(西安文理学院信息工程学院 西安 710065)



基于Canny算子的图像边缘检测方法改进研究

冯永亮

(西安文理学院信息工程学院西安710065)

针对传统Canny算子在平滑图像、梯度计算和阈值选取方面存在缺陷,论文提出了一种改进方案。该方法使用带权中值滤波代替高斯滤波,使用3×3邻域四方向偏导数代替2×2邻域二方向来求取梯度幅值和方向,使用梯度直方图确定高、低阈值代替人为随意设定。仿真实验结果表明,改进的Canny算子提高了检测精度,连续性更好。

图像; 边缘; Canny; 算子; 滤波

Class NumberTN247; TP391

1 引言

图像边缘是指其周围像素灰度不连续或极具变化的像素点的集合,也是目标、背景和区域之间的分界线。边缘检测首先检测图像中的边缘点,然后按照某种策略将边缘点连接成边缘线,最后构成分割区域。边缘检测是特征提取、目标识别、图像理解的基础[1],因此,它是图像处理与计算机视觉的基本问题。图像边缘检测主要通过求导算子[2]、数学形态学[3]、小波变换和图像融合[4]等四种技术来实现,其中求导算子方式是最为广泛的边缘检测技术,包括Roberts算子、Sobel算子[5]、Prewitt算子[6]、Laplace算子和Log算子[7]等,这些算子简单易于实现,实时性较好[8],但是对噪声的干扰敏感,抗干扰性差,边缘容易被噪声污染,检测效果不理想。相比之下,基于最优化算法的Canny算子因其具有信噪比大和检测精度高等优点,而被广泛应用。

本文分析了Canny图像边缘检测的基本原理,针对传统Canny算子的若干缺陷,提出了改进方案,包括使用自适应中值滤波取代高斯滤波来平滑图像,使用水平和垂直的3×3邻域代替水平2×2邻域来计算梯度幅值,使用梯度直方图代替来确定阈值等。实验结果表明,改进的算法提高了图像边缘检测精度和准确度,实验效果良好。

2 Canny边缘检测算法

2.1Canny算子基本原理

1986年,Canny根据优良边缘检测算子的三个判断准则:高信噪比、高定位精度和单一边缘响应,提出了Canny算子,该算子的基本流程图如图1所示。

图1 Canny算子基本流程

2.2Canny算子实现

Canny算子实现主要包括四个步骤:

第一步,高斯平滑,使用二维高斯函数G(x)构造滤波器,分别按行和列对灰度图像f(x,y)进行卷积操作,以便消除噪声,最后得到平滑图像I(x,y)[9],其中σ为高斯滤波分布参量,它用来控制平滑程度。

(1)

(2)

(3)

第二步:计算梯度幅值及方向,Canny算子采用2×2邻域的一阶偏导有限差分来计算图像I(x,y)的梯度幅值M(x,y)及梯度方向H(x,y)[10],其中kx和ky分别是原图像被滤波器沿行和列分别作用的结果。

(4)

H(x,y)=arctan[ky(x,y)/kx(x,y)]

(5)

第三步:对梯度幅值进行非极大值抑制,即找寻像素点的灰度值在其8邻域内是否是最大的,如果是,则把该像素点作为待选的边缘点[11],否则,将这些非极大值的点所对应的灰度值置为0,这样就剔除掉了非边缘的点。

第四步:使用双阈值算法检测和连接边缘,首先根据高阈值得到一个边缘图像TH,然后采用一个低阈值来解决单一高阈值带来的边缘不闭合的问题[12]。在TH中把边缘连接成轮廓,在轮廓的断点处对其8邻域进行遍历,寻找满足低阈值的点,将这些点作为新的边缘,直到图像边缘闭合,最终得到低阈值边缘图像TL。

2.3Canny算子的缺陷分析

Canny算子较好地平衡了图像除燥和提取边缘,实现了图像边缘的检测。实际上,由于收到光照强度、边缘模糊、图像噪声等影响,Canny算子的缺陷也越来越凸显出来。第一,由人为设定的高斯滤波器参数σ,很难在图像去噪和边缘保留上取得好的平衡。第二,对于噪声较强的图像,采用2×2邻域会产生伪边缘,而丢失真实的边缘。第三,人工设定的高、低阈值缺乏自适应性,很难获得满意的边缘检测效果。第四,在边缘连接时,经常存在较多的断线。

3 改进的Canny边缘检测算法

3.1使用改进的中值滤波代替高斯滤波平滑图像

当用来平滑图形或去除噪声时,所有的图像结构,包括点、线和边缘都被模糊了,造成整个图像都被模糊了。而且,对于线性滤波器是无法避免的。因此,本文提出使用基于非线性滤波器的带权中值滤波来进行平滑图像。

中值滤波是以排序统计理论为依据的,并能有效抑制噪声。其工作步骤是:首先,按照灰度值大小将邻域内的像素值进行排序。然后,将排好序的序列中间像素值作为中间输出值。最后,用中间输出值和周围像素灰度值作比较,将差值较大的像素值修改为与周围像素接近的值,以实现消除噪声点的目标。传统的中值滤波中,滤波区域内的每个像素对结果的影响是相同的,而没有考虑它们与中心的距离这一重要因素。本文提出的带权中值滤波为滤波区域内的每个位置分配一个独立的权值,权值的分配由权值矩阵W(i,j)∈N来决定。在滤波计算过程中,每个像素值I(u+i,v+j)被插入扩展的像素向量中,插入次数为其权值W(i,j),扩展的像素向量为

Q=(p0,…,pL-1)

然后对此像素向量进行排序,然后以某个像素为中心,选取3×3方形邻域,按邻域内的每个像素灰度值大小进行排序。按照如下公式计算中间值y,下来按照中间值进一步进行中值滤波处理。

y=Med{f1,…,fn}

3.2采用改进的梯度幅值计算方法

Canny算子通过在2×2邻域内求有限差分来计算梯度幅值,考虑到该方法对噪声较为敏感,容易检测出假边缘,而丢失真实边缘。本文采用在3×3邻域内一阶偏导来求梯度幅值和方向。首先计算x,y,45°和135°方向上的一阶偏导数:

x方向:Fx(x,y)=I(x+1,y)-I(x-1,y)

y方向:Fy(x,y)=I(x,y+1)-I(x,y-1)

45°方向:F45°(x,y)=I(x-1,y+1)-I(x+1,j-1);

135°方向:F135°(x,y)=I(x+1,y+1)-I(x-1,j-1)。

然后,由这四个方向的偏导数求得水平和垂直方向的差分为

最后分别求得梯度幅值g和梯度方向θ。

3.3改进的阈值计算方法

梯度直方图描述了图像边缘强度信息,其尖峰部分对应了图像的非边缘部分。本文利用梯度直方图才获取高阈值TH,将非边缘点的个数与总像素个数比设为H,依据梯度直方图,由低到高逐步累积图像点个数,当累积个数为总像素个数的H倍时,该时刻的梯度值取为高阈值TH。根据反复实验,H一般取0.7较为合适,把TH与一个比例因子L的积设为低阈值TL,即TL=L·TH。论文设L为0.4。

3.4改进的Canny算子进行图像边缘检测的工作步骤

1) 使用改进的中值滤波对图像进行平滑滤波处理,抑制噪声干扰。

2) 通过计算x,y,45°和135°方向上的一阶偏导数,求出水平和垂直方向的差分,进而求得梯度幅值g和梯度方向θ。

3) 采用传统的方式对梯度幅值进行非极大值抑制。

4) 利用梯度直方图求出高阈值TH和低阈值TL,然后利用双阈值算法对图像进行边缘检测。

5) 锐化处理,并连接边缘,得到最终的边缘图像。

4 仿真实验结果与分析

图2 仿真实验结果

以Matlab2014a为实验平台,对图像进行实验仿真。实验采用标准的lena图,其检测结果如图2所示。可以看出,传统的Canny算子出现了明显的漏检和误检问题,致使很多边缘不连续,而改进的算法提取的边缘定位更加准确,轮廓更加清晰,连续性更好。

5 结语

本文传统的Canny算子的若干缺陷,提出了一种改进的Canny算子边缘检测算法,包括使用带权中指滤波代替高斯滤波,使用四个方向的偏导数求梯度幅值和方向,使用梯度直方图确定高低阈值等,实验结果表明,改进的算法降低了误检率,提高了检测精度,使得边缘图像轮廓更加清晰,连续性更良好。

[1] 历丹,钱建生,芦楠楠,等.图像边缘检测技术的改进[J].计算机工程与应用,2010,46(18):164-166.

LI Dan, QIAN Jiansheng, LU Nannan, et al. Improving of Image Edge Detection Technique[J]. Computer Engineering and Applications,2010,46(18):164-166.

[2] 胡晓莉,丁丽,江杰,等.改进Canny算法的实时图像边缘检测[J].内蒙古科技大学学报,2015,34(3):262-266.

HU Xiaoli, DING Li, JIANG Jie, et al. Real-time Image Edge Detection of The Improved Canny Algorithm[J]. Journal of Inner Mongolia University of Science and Technology,2015,34(3):262-266.

[3] 孙丽萍,方源敏,刘兵川,等.Canny算子边缘检测的改进研究[J].河南科学,2015,33(11):1937-1940.

SUN Liping, FANG Yuanmin, LIU Bingchuan, et al. Research on Edge Detection of Canny Operator[J]. Henan Science,2015,33(11):1937-1940.

[4] 雒涛,郑喜凤,丁铁夫,等.改进的自适应阈值Canny边缘检测[J].光电工程,2009,36(11):106-111.

LUO Tao, ZHENG Xifeng, DING Tiefu, et al. Improved Self_adaptive Threshold Canny Edge Detection[J]. Opto-Electronic Engineering,2009,36(11):106-111.

[5] 王佐成,刘晓冬,薛丽霞,等.Canny算子边缘检测的一种改进方法[J].计算机工程与应用,2010,46(34):202-204.

WANG Zuocheng, LIU Xiaodong, XUE Lixia, et al. Improved Method of Canny Operator Edge Detection[J]. Computer Engineering and Application,2010,46(34):202-204.

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

LI Junshan, MA Ying, ZHAO Fangzhou, et al. A Novel Arithmetic of Image Edge Detection of Canny Operator[J]. ACTA Photonica Sinica,2011,40(1):50-54.

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

YE Dezhou, YANG Fengjiang, MAO Chenghao, et al. Edge Detection Algorithm of Infrared Image Based on Canny Operator[J]. Laser & Infrared,2015,45(9):1129-1133.

[8] 陈若珠,薛彪.基于MATLAB的改进Canny算子的图像边缘检测研究[J].工业仪表与自动化装置,2014,14(3):62-66.

CHEN Ruozhu, XUE Biao. The Research of Image Edge Detection Based on Improved Canny Operator of Matlab[J]. Industrial Instrumentation & Autonation,2014,14(3):62-66.

[9] 陈晓杰,邹雪成,赵永刚,等.基于Canny算子的激光成像雷达距离图像边缘检测方法研究[J].激光杂志,2015,36(11):24-27.

CHEN Xiaojie, ZOU Xuecheng, ZHAO Yonggang, et al. The Study of Laser Imaging Radar Images Edge Detection Based on Canny Edge Detection Algorithm[J]. Laser Journal,2015,36(11):24-27.

[10] 邓动伟,彭良玉.基于改进Canny算法的图像边缘检测[J].电脑与信息技术,2015,23(2):4-9.

DENG Dongwei, PENG Liangyu. Image Edge Detection Based on Improved Canny Algorithm[J]. Computer and Information Technology,2015,23(2):4-9.

[11] 王小俊,刘旭敏,关永,等.基于改进Canny算子的图像边缘检测算法[J].计算机工程,2012,39(14):196-199.

WANG Xiaojun, LIU Xumin, GUAN Yong, et al. Image Edge Detection Algorithm Based on Improved Canny Operator[J]. Computer Engineering,2012,39(14):196-199.

[12] 许宏科,秦严严,陈会茹,等.一种基于改进Canny的边缘检测算法[J].红外技术,2014,36(3):210-215.

XU Hongke, QIN Yanyan, CHEN Huiru, et al. An Improved Algorithm for Edge Detection Based on Canny[J]. Infrared Technology,2014,36(3):210-215.

Improvement of Image Edge Detection Method Based on Canny Operator

FENG Yongliang

(School of Information Engeering, Xi’an University, Xi’an710065)

In view of the defects of the traditional Canny operator in smoothing image, gradient calculation and threshold selection, an improved scheme is proposed in this paper. The method uses a weighted median filtering instead of the Gaussian filter, 3×3 neighborhood four direction partial derivative is used to replace the 2×2 neighborhood two direction to obtain the gradient magnitude and direction, and uses Gradient histogram to determine high and low threshold instead of man-made arbitrarily set. The simulation experimental results show that the improved Canny operator to improve the detection accuracy and have better continuity.

image, edge, Canny, operator, filtering

2016年2月10日,

2016年3月20日

西安市科技创新基金项目(编号:CXY1531WL22;CXY1443WL20);西安市社科规划基金项目(编号:15Y47)资助。

冯永亮,男,硕士,讲师,工程师,研究方向:计算机视觉与图像处理、软件开发、计算机网络。

TN247; TP391

10.3969/j.issn.1672-9722.2016.08.036

猜你喜欢

邻域算子梯度
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
融合密度与邻域覆盖约简的分类方法
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
一种自适应Dai-Liao共轭梯度法
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
稀疏图平方图的染色数上界
一个具梯度项的p-Laplace 方程弱解的存在性