分享

基于方向梯度的边缘检测算法及实现

 GXF360 2017-05-28
基于方向梯度的边缘检测算法及实现

基于方向梯度的边缘检测算法及实现

廖鸿飞, 李鸿燕, 徐才恩, 南斯云

(上海工程技术大学 基础教学学院, 上海 201620)

摘要:提出了基于方向梯度的边缘检测算法.根据梯度直方图信息,将梯度模非极大抑制后的像素点分为3类,依据3类梯度模方差最小化自动获取高低阈值,不需要人为设定任何参数.Matlab仿真环境实验结果表明:该边缘检测算法在保持Canny算子优点的基础上,检测出的边缘信息更加准确和有效.

关键词:方向梯度; Canny边缘检测算子; 最小方差

边缘检测是基于物体和背景间灰度或纹理特性上某种不连续性或突变性的一种检测技术,是图像处理的重要内容,也是图像分割、模式识别、区域形状提取等领域分析方法的基础,在计算机图像分析等应用中起着重要的作用.

常用的边缘检测算子有基于局域窗口梯度的Roberts、Prewitt、Sobel和Laplace等算子及基于最优化算法Canny 算子[1-4].其中,局域窗口梯度算子对噪声敏感,抗干扰性差,边缘不够精细.而基于最优化算法的Canny边缘检测算子则具有信噪比大和检测精度高的优点,被广泛应用.但Canny边缘检测算子在进行边缘检测时,需要人为确定高低阈值的参数.在实际情况中,不同图像由于边缘信息的不同,取得最佳边缘检测效果的阈值也各不相同,若对每幅图像采用相同的阈值进行检测,则会检测出虚假边缘或丢失局部边缘.

针对Canny算子采用固定阈值进行边缘点检测易丢失边缘细节的缺点,本文提出了基于方向梯度边缘检测算法及实现,在高低阈值的选取上依据3类像素点的梯度模方差最小化进行计算,根据图像信息特征动态设置,从而避免了人为设定阈值,使边缘检测算法有较强的自适应性,检测出更多的真实边缘细节.

1 Canny边缘检测算法

Canny边缘检测算法提出3个严格的边缘检测标准:好的信噪比、高的定位精度和单边缘响应.根据这3个准则,推导出最优边缘检测算法的一个近似实现,即边界点位于图像被高斯函数平滑后的梯度模取得极大值的像素点上.具体过程包括:

1) 输入图像通过高斯函数进行低通平滑滤波,抑制图像噪声,其高斯函数为

(1)

2) 计算平滑后图像中各点的梯度.设f(x,y)为像素点(x,y)处的灰度值,其在点(x,y)处的梯度gradf(x,y)定义[5-7]为如下二维向量

式中:, 分别为f(x,y)关于x,y的偏导数.gradf(x,y)的模为

(2)

梯度模代表边缘的强度,在数字图像处理中,常用差分近似导数.采用2×2 邻域一阶偏导的有限差分,计算平滑后图像f(x,y)关于x,y的偏导数公式如下

fx(x,y)≈[f(x+1,y)-f(x,y)+

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

fy(x,y)≈[f(x,y+1)-f(x,y)+

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

进一步计算梯度方向θ,计算公式为

(3)

3) 对梯度模非极大值抑制,确定候选边缘点.如果点(x,y)的梯度模与该点梯度方向上相邻两个像素点的梯度模相比不是最大,则该点视为非边缘点,删除,抑制后得到候选边缘点.

4) 检测和连接边缘,设置全局高低阈值,选取边缘点.在候选边缘点中,梯度模大于高阈值的点作为边缘保留;梯度模小于低阈值的点删除;梯度模介于高低两阈值间且与边缘点邻接的点作为边缘保留,否则删除.利用递归跟踪的算法不断搜集边缘,直到将所有的间隙都连接起来为止.

Canny边缘检测算子在2×2的邻域内求有限差分均值来计算梯度模,对边缘的定位比较准确,但算子对整幅图像使用固定的高低阈值进行分割,无法顾及图像中的局部特征信息,容易丢失灰度值变化缓慢的局部边缘,导致目标物体的轮廓边缘不连续,使分割效果受到影响.此外,因为算子高低阈值的参数不是由图像边缘的特征信息决定,需要人为设定,因此不具有自适应能力,自动化程度低.

2 基于方向梯度的边缘检测算法

2.1 自动阈值获取

在进行边缘检测时,高低阈值的选取非常重要,直接决定检测到的边缘信息的多少以及边缘的连续性.由于高阈值控制着边缘检测的起始点,高阈值越小,保留的边缘信息就越多,但是伪边缘也会增多;相反,若高阈值越大,虽然可以有效抑制伪边缘,但也会丢失一些边缘信息.如何选择合适的高低阈值在检测和连接边缘阶段中,对正确的边缘点选取具有重要影响.

设高低阈值分别为hl,对梯度模非极大值抑制后,候选边缘点可根据梯度模的范围划分为3类:A1A2A3,分别定义为

其中,A1、A2和A3分别为非极大值抑制后非边缘像素点的集合、可能边缘像素点的集合和边缘像素点的集合.

设ni为梯度模在区间 (i-1,i]的像素点的个数,Ni (i=1,2,3)为Ai类像素点的总个数,N为非极大值抑制后3类像素点个数的总和,记

pi=

A1A2A3类像素点梯度模均值E1(l)、E2(l,h)和E3(h)分别为

E1(l)=∑·

E2(l,h)=∑·

E3(h)=∑·

非极大值抑制后梯度模的方差为

(4)

所求的高低阈值h和l应使D(l,h)取得最小值.式(4)对应的连续函数C(l,h)为

[x-E1(l)]2p(x)dx+

[x-E2(l,h)]2p(x)dx+

[x-E3(h)]2p(x)dx

[x-E1(l)]2p(x)dx

[x-E2(l,h)]2p(x)dx

[x-E3(h)]2p(x)dx

由于

xp(x)dx+

p(x)dx

且由均值的性质有

[x-E1(l)]p(x)dx=0

所以

= [l-E1(l)]2p(l)-

[x-E1(l)]p(x)dx=

[l-E1(l)]2p(l)

同理

=-[l-E2(l,h)]2p(l)

=0

所以

=[l-E1(l)]2p(l)-

[l-E2(l,h)]2p(l)

(5)

类似可得

=[h-E2(l,h)]2p(h)-

[h-E3(h)]2p(h)

(6)

==0

化简得

(7)

方程组(7)的解即为所求的高低阈值.

2.2 算法流程及步骤

本研究主要算法流程如图1所示.

图1 基于方向梯度的边缘检测算法流程图

Fig.1 Flow chart of edge detection algorithm based on orientation gradient

算法步骤为:

1) 读取原始图像文件,利用一维高斯函数对原始图像分别按行和列进行卷积运算,得到低通平滑滤波后的去噪图像;

2) 计算去噪图像中各像素点的方向导数,基于方向导数的计算结果,计算梯度模;

3) 基于梯度模对图像进行非极大值抑制,确定候选边缘点集合;

4) 在候选边缘点中,依据3类梯度模方差最小化确定高低阈值;利用递归搜索进行边界点检测和边缘连接,输出图像边缘.

3 Matlab环境下的仿真实现

在Matlab软件中Simulink下进行仿真编程[8-9],采用Matlab自带的标准测试图像Cameraman.tif(图片1)和Coins.png(图片2)进行处理.传统Canny算法采用高阈值系数0.8,l=h/2确定高低阈值,本算法与传统Canny算法高低阈值计算结果见表1.

表1 高低阈值统计

Table 1 Statistics of high and low thresholds

图像算法低阈值高阈值图片1基于方向梯度检测算法0.0550.194传统检测算法0.4500.090图片2基于方向梯度检测算法0.0430.162传统检测算法0.0290.059

根据计算出的高低阈值,可得边缘检测结果,如图2所示.

图2 图像的边缘检测效果

Fig.2 Edge detection results of images

从实验结果可以看出,传统的Canny算法检出的边缘含有较多属于背景的虚假边缘,本研究算法提取的边缘信息更加准确和有效.

4 结 语

本文研究提出了一种基于方向梯度的边缘检测算法,该算法在Canny边缘检测算子基础上保持了Canny边缘检测算子的优点,使边缘检测算法有较强的自适应性,检测出的边缘信息更加准确和有效.

参考文献:

[1] GONZALEZ R C,WOODS E.数字图像处理[M].2版.阮秋琦,译.北京:电子工业出版社,2007.

[2] 徐艳蕾,赵继印,焦玉斌.噪声图像边缘检测方法的研究[J].计算机应用研究,2009,26(1):387-389.

[3] 赵芳,栾晓明,孙越.数字图像几种边缘检测算子检测比较分析[J].自动化技术与应用,2009,28(3):68-70.

[4] 陆兴娟,吴震宇.图像边缘检测算法研究[J].现代电子技术,2010,33(6):128-130.

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

[6] 唐路路,张启灿,胡松.一种自适应阈值的Canny边缘检测算法[J].光电工程,2011,38(5):127-132.

[7] 张帆,彭中伟,蒙水金.基于自适应阈值的改进Canny边缘检测方法[J].计算机应用,2012,32(8):2296-2298.

[8] 高成.Matlab图像处理与应用[M].2版.北京:国防工业出版社,2007.

[9] 李武.Matlab中图像边缘检测算法研究[J].北京测绘,2014(3):65-68.

(编辑: 韩琳)

Edge Detection Algorithm and Implementation Based on Orientation Gradient

LIAO Hongfei, LI Hongyan, XU Caien, NAN Siyun

(School of Fundamental Studies, Shanghai University of Engineering Science, Shanghai 201620, China)

Abstract:An edge detection algorithm based on orientation gradient was proposed.Guided by the gradient histogram of the test image,all pixels of gradient module were divided into three classes after non-maximum suppression.Based on the minimum variance of gradient module of three classes,the high and low thresholds were selected adaptively without the necessity to setup any parameter artificially.After simulated in Matlab software simulation environment,the experimental result shows that the edge detection algorithm can detect edge more accurately and effectively with keeping advantages of Canny operator.

Key words:orientation gradient; Canny edge detection operator; minimum variance

文章编号:1009-444X(2017)01-0016-04

收稿日期:2017-01-04

基金项目:国家级大学生创新训练计划资助项目(201610856027)

作者简介:廖鸿飞(1997-),男,在读本科生,研究方向为电气工程及自动化.E-mail:15900935728@qq.com

通信作者:李鸿燕(1971-),女,副教授,硕士,研究方向为奇异积分方程,应用数学.E-mail:wxsh2001@163.com

中图分类号:TN 911.73

文献标志码:A

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多