图像边缘检测方法研究

2024-10-31

图像边缘检测方法研究(精选10篇)

图像边缘检测方法研究 篇1

0 引 言

边缘是图像最重要的特征之一,它是其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合[1],包含了用于识别图像的重要信息。两个具有不同灰度值的相邻区域之间总存在着边缘,边缘是灰度值不连续的结果。而边缘检测正是基于幅度不连续性进行图像分割的方法。其实质是采用某种算法来提取出图像中对象与背景间的交界线。边缘检测的图像的边缘检测技术是数字图像处理中最重要的内容之一,是图像分割[2]、目标区域的识别、区域形状提取等图像分析领域中十分重要的基础。

1 几种经典的边缘检测算子

边缘是图像灰度变化比较剧烈的地方,边缘点处有一阶导数的峰值,同时会有二阶导数的零交点。微分算子[3]就是以此为理论基础,在空域进行卷积,然后设置门限来提取边缘点集。由于边缘、轮廓在一幅图像中常常具有任意的方向,所以需要找到一些各项同性的检测算子,它们对任意方向的边缘、轮廓都具有相同的检测能力。这些边缘检测算子有Roberts算子、Prewitt算子、Sobel算子[4,5]、LOG算子和Canny算子等。

1.1 Robert算子

Robert算子是一种利用局部差分算子寻找边缘的算子,其模板如图1所示。

Robert算子的定义为:

G[f(i,j)]={[f(i+1,j+1)-f(i,j)]2+[f(i+1,j)-f(i,j+1)]2}1/2 (1)

由于上述算法的处理工作量很大,因此在实用上常采用绝对差算法对上式化简如下:

undefined

Robert梯度以[x-0.5,y-0.5]为中心,所以他度量了[x-0.5,y-0.5]点处45°和135°方向(相互正交)的灰度变化。适当取门限T,做如下判断:G(x,y)>T,(x,y)为阶跃状边缘点。Robert算子对具有陡峭的低噪声图像效果较好。

1.2 Sobel算子

Sobel算子有两个卷积计算核,如图2所示。

图像中每点均分别用这两个算子作卷积,一个对垂直边缘影响最大,另一个对水平边缘影响最大。取两个卷积的最大值作为该点的输出值,然后再用阈值分割得边缘[6],运算结果是一幅边缘幅度图像。

Sobel算子从不同的方向检测边缘,利用像素点上下、左右邻点的灰度加权算法,根据在缘点处达到极值进行边缘的检测。其定义为:

SS=(dundefined+dundefined)1/2 (4)

dx=[f(i-1,j-1)+2f(i,j-1)+f(i+1,j-1)]-[f(i-1,j+1)+2f(i,j+1)+f(i+1,j+1)] (5)

dy=[f(i+1,j-1)+2f(i+1,j)+f(i+1,j+1)]-[f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1)] (6)

用模板表示dx,dy为:

undefined

Sobel算子通常对灰度渐变和噪声较多的图像处理得较好。

1.3 Prewitt算子

Prewitt算子[7]有两个卷积计算核,如图3所示。其做卷积的方法和Sobel算子的方法相似。

Prewitt算子定义为:

undefined

模板表示dx,dy为:

undefined

Prewitt算子通常对灰度和噪声较多的图像处理得较好。

1.4 LOG算子

拉普拉斯算子[8]是对二维函数进行运算的二阶导数算子,将在边缘处产生一个陡峭的零交叉。拉普拉斯算子是一个线性的、时不变的算子,它的传递函数在频域空间的原点是零,因此经拉普拉斯滤波过的图像具有零平均灰度。LOG算子先用高斯低通滤波器将图像进行预先平滑,然后用拉普拉斯算子找出图像中的陡峭边缘,最后用零灰度值进行二值化产生闭合的、连通的轮廓,消除了所有内部点,其检测精度明显提高。它有两个卷积计算核,作卷积的方法和Sobel算子的方法一样,如图4所示。

高斯滤波器的函数形式为:

undefined

式中:σ是标准差。令r2=x2+y2,对其取二阶导数得的拉普拉斯算子为:

undefined

LOG算子的优点是过滤了噪声,其不足在于会将原有的边缘给平滑了。

1.5 Canny算子

Canny算子[9]是一个具有滤波、增强和检测的多阶段的优化算子。在进行处理前,Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声。Canny分割算法采用一阶偏导的有限差分来计算梯度的幅值和方向。在处理过程中,Canny算法还将经过一个非极大值抑制的过程。最后Canny算法将采用两个阈值来连接边缘。取高斯函数为:

undefined

某一方向上,一阶方向导数为:undefined

将f(x,y)和G(x,y)n进行卷积,改变n的方向,使f(x,y)*G(x,y)n取最大值的方向就是梯度方向。

梯度矢量的模:undefined

梯度矢量的方向:A=G(x,y)n*f(x,y)/M

Canny算子边缘检测的方法是寻找图像梯度的局部最大值。梯度是用高斯滤波器的导数计算的。Canny方法使用两个阈值分别检测强边缘和弱边缘,而且仅当强边缘和弱边缘相连时,弱边缘才会包含在输出中。因此,此方法不容易受噪声的干扰,能够检测到真正的弱边缘。

Canny算子对检测阶跃性边缘时效果极好,去噪能力强。但由于检测阈值固定,当检测具有模糊边缘的图像时,很可能导致平滑掉部分边缘信息。因此,为了能更精确地检测出目标边界,可先对图像进行预处理,将其分割成若干子图像,然后针对每幅子图像中具体情况选用不同的阈值,采用针对各子图所选择的阈值对图像进行动态阈值分割。实际应用时可以根据需要调整子图像的大小,以获取所需的大小,这应该是一种可行的方法。

2 Matlab仿真结果

利用Matlab 6.5对图像“lena.jpg”进行仿真[10],结果如图5所示。

3 结 语

从仿真结果图中可以直观的看出,各种算法各具优点。因此,在实际运用时,应具体问题具体分析,根据特定情况选择最佳的边缘检测算子,可以取得令人满意的结果。经典的微分算子原理和模板比较简单,易于操作,能够检测出定位比较准确并且清晰的边缘,但是细节方面不够完整,Robert算子和Sobel 算子及Prewitt算子的边缘图中检测出的边缘数少,欠完整,且对噪声很敏感。LOG算子和Canny算子的边缘图中的边缘连续性很好,完整性也占优。相比之下,LOG算子边缘较粗,噪声点较多,而Canny算子的边缘图中的边缘线很细,边缘连接程度最佳,景物的细节表现得最明晰,轮廓边缘提取得很完备。

在此通过对几种典型的边缘检测算子进行详细的分析比较,得出各边缘检测算子的优缺点以及适用范围,为以后的科学研究以及实际应用提供了理论依据,具有一定的参考价值。

参考文献

[1]胡瑞安,胡纪阳,徐树公.分形的计算机图像及其应用[M].北京:中国铁道出版社,1995.

[2]谢佳峰,谭冠政.基于Matlab的静止图像车牌定位研究[J].可编程控制器与工厂自动化,2009(1):68-71.

[3]崔夏荣,陆爱萍.基于小波变换和微分算子的图像边缘检测[J].南平师专学报,2007(4):35-38.

[4]Li Xinfu,Liu Jiaomin.Edge Detection on arc I mage of LowVoltage Apparatus[A].IEEE Proceedings of the Second In-ternational Conference on Machine Learning and Cybernetics[C].Xi′an,2003:2 921-2 924.

[5]Health A,Sarkar S,Sanocki T,et al.Comparison of EdgeDetectors:A Methodology and Initial Study[J].ComputerVision and I mage Understanding,1998,69(1):38-54.

[6]王晓丹.基于Matlab的图像分析与设计——图像处理[M].西安:西安电子科技大学出版社,2000.

[7]刘明艳,赵景秀,孙宁.用Prewitt算子细化边缘[J].光电子技术,2006(4):259-263.

[8]吕玉琴,曾光宇.基于图像边缘检测算法的研究[J].太原科技,2009(2):31-33.

[9]陈荣,刘振亚,刘礼书,等.一种基于形态学和Canny算子的图像边缘提取算法[J].江西教育学院学报,2008(6):14-15.

[10]陈扬.Matlab 6.x图形编程与图像处理[M].西安:西安电子科技大学出版社,2002.

图像边缘检测方法研究 篇2

对传统的微分边缘检测算法的缺陷进行分析和评价,并针对微分边缘检测算法的缺陷,提出了一种改进的边缘检测算法.新算法摈弃了传统边缘检测算法中将每个像素单独进行考虑的模式,而是将待检测像素及与其相邻的像素作为一个整体来考虑,通过将待检测像素为中心的某个领域进行整体计算,得出能够反映这个领域性质的某些参数,并以此作为边缘检测的判据,进行检测.此算法充分考虑到了中心像素与周围像素之间的.关系,从而增加了梯度运算的可靠性.实验表明:新算法能够检测到更细的边缘,并且在椒盐噪声的情况下要优于常用的微分边缘检测算法.

作 者:崔建军 詹世富 郑雄伟 顾俊凯 CUI Jian-jun ZHAN Shi-fu ZHENG Xiong-wei GU Jun-kai 作者单位:崔建军,顾俊凯,CUI Jian-jun,GU Jun-kai(长安大学地质工程与测绘学院,陕西,西安,710054)

詹世富,郑雄伟,ZHAN Shi-fu,ZHENG Xiong-wei(中国国土资源航空物探遥感中心,北京,100083)

图像边缘检测方法研究 篇3

关键词:图像处理; 边缘检测; 模板; 卷积; 非极大抑制

边缘检测方法的优劣直接影响着图像特征提取及其它后续处理,是图像预处理中的关键。边缘检测是对灰度变化的度量与定位,灰度变化的显著程度可以通过导数来度量,即函数导数能够反映图像灰度变化的显著程度,因此边缘检测的一个基本思想就是通过求一阶导数的局部极大值,二阶导数的过零点来体现出来的。利用梯度最大值提取边缘点的这种思想产生了许多经典的边缘检测方法如:Sobel算法、Log 算法、Canny 算法等。

一、边缘检测概述

图像中边缘检测是利用物体和背景在某种图像特征中的差异来实现的, 这些差异包括灰度、颜色或纹理特征, 检测出图像特征发生变化的位置从而达到检测目的。图像边缘是分析和理解图像的基础, 是图像中最基本的特征, 图像处理的研究中许多都涉及到边缘检测。图像边缘检测在实际工程中有着广泛的应用, 如图像匹配、模式识别、特征提取和图像编码等。

二、国内外现状

边缘检测技术作为一个低级的计算机视觉处理技术很早就引起了人们关注。最早提出边缘检测技术的是Julez,但他并未展开系统研究,而最早期对其进行系统研究的是Roberts在1965年开始的,从此,拉开了图像边缘检测技术研究的序幕。

很多年来,由于众多专家、学者的不懈努力,在边缘检测领域提出了很多相关理论和边缘检测算法,大致将已有的边缘检测算法分类如下:

1.传统边缘检测算法。传统边缘检测算法以原始图像为基础,对图像中的各个像素考察它的某个领域内灰度值的阶跃变化,利用边缘邻近一阶或者二阶方向导数变化规律来检测边缘,这种方法简单而且有效。其中最基本的算子有:Roberts算子, Sobel算子、Prewitt算子和Kirsch算子等等,这些算子都是一阶微分算子。其检测原理为:一阶导数在边缘处取得最大值。但是运用上述一阶边缘检测算子检测边缘时,在边缘像素邻域产生的响应较宽,还需要后期进行细化处理,所以这些算子的边缘定位精确度不高。

2.改进的传统边缘检测法。传统边缘检测法大多属于微分算法,在数字边缘检测中,常用不同的模板算子与图像的像素灰度值做卷积运算,来求解边缘的导数值。这些算法简单有效,可操作性强,相对来说比较成熟,并且在matlab中可以直接调用,已经应用于很多领域,并取得了显著成绩。所以,基于这些算子的改进是今后研究边缘检测算法的方向之一。很多学者已经付出了很多努力,取得了很多研究成果。

3.基于小波变换和形态学的图像边缘检测算法。小波变换是一种有效的数学工具,它通过时间和频域的局域变换能有效提取有用信息,并且,还能够通过伸缩和平移对信号进行多尺度细化分析,具有良好的时频局部化特性、方向选择性以及多尺度分析能力,是检钡(突变信号的有力工具。各种基于小波变换的图像边缘检测方法也取得了很大发展,并且,应用领域越来越广泛。例如,二进制小波;多进制小波、巴布小波、正交小波等等类型的小波也在图像边缘检测方面也取得了不错的研究成果。

三、医学图像边缘检测算法

1.canny算法。基于这三个准则,Canny得出了c-y边缘检测算子。完整的c-y边缘在高斯噪声中代表一个跳变的强弱情况。按照这个模型,canny研究了已有的边缘检测算子以及其在边缘检测领域内的相关应用,在1986年canny提出了一个相对比较好的边缘检测方法,这种算法要求满足下述几个准则:

(l)信噪比准则:该准则主要是在图像边缘处来检测有无结果。并且不能出现虚假边缘。

(2)精度定位准则:也就是我们所标记的边缘位置必须要和其他在图像上的边缘的中心位置相近。

(3)单边响应准则:单独边缘所产生的响应的频率不要太高,并且需要最大地抑制虚假边缘响应。

这里,脉冲响应导数的零交叉点平均距离D(f)必须满足下面的关系式:

D(f)=π

h”(x)是h(x)的二阶导数。根据上面的指标和准则,我们使用泛函求导的方法来推导出Canny边缘检测器,并得出这个检测器恰恰是信噪比和定位之乘积的最优的逼近算子。

主要过程如下:

(1)对图像进行平滑,我们主要使用高斯滤波器来进行;

(2)计算幅值和方向;

(3)必須要让梯度的幅值被极大值所抑制;

(4)用双闽值算法对边缘进行检测与连接。

canny边缘检测重点是用来寻找到梯度幅度的局部最大值。这里的梯度通过高斯滤波器的导数来进行计算出来的。Canny方法主要使用两个闽值分别对强边缘以及弱边缘进行检测,同时在对强边缘与弱边缘进行相连操作的时候。

2.MTM算法。均值滤波算法对于脉冲信号去噪的能力是很不理想的。然而,中值滤波算法却能够很好滴对脉冲噪声进行去噪,但是对于高斯噪声的去噪能力相对差了一点。

但是在最后评价时,这些方法往往都采用利用单一的噪声进行评价。假如能够找到某种方法可以将脉冲噪声以及被高斯噪声影响的像素进行区分开来,然后对于受到不同噪声干扰的像素进行不同的滤波,所以理论上将,这将会起到比较好的滤波效果。

3.Otsu算法研究。在对图像的处理过程中,长期以来,阈值的自动选取都是对图像进行研究的重点话题。往往阈值的选取都是在这样的一种假设上进行研究的。那么最佳的阈值应该具备最好的而且可以所示分开的两类门限。这种算法计算比较简单,并且一定情况下不会受到图像对比度和亮度变化的影响,同时在某些图像在进行实时处理系统中的应用也变得十分广泛,长期以来就被认为是阈值自动化选取领域里的最优化的方法。

四、结语

由于边缘检测技术的复杂性和研究时间的限制,本课题的研究对象主要针对医学图像算法,所提出方法的应用领域还有待于进一步扩展和完善,但是这些方法对后续边缘检测研究工作具有很高的参考价值。此外,由于技术上的限制,还有很多问题有待进一步的研究。展望今后的研究工作,还有待研究。

参考文献:

[1] 段瑞玲,李庆祥,李玉和.图像边缘检测方法研究综述[J].光学技术,2005,31(3):415-419.

[2] 马艳,张治辉.几种边缘检测算子的比较[J].工业自动化,2004(1):54-56.

图像边缘检测常用算子研究 篇4

物体的边缘是图像局部变化的重要特征, 以不连续性的行式出现, 通常用方向和幅度描述图像的边缘特性。一般来讲, 沿边缘走向的像素变换平缓, 而垂直于边缘走向的像素变化剧烈。基于边缘检测的基本思想是先检测图像中的边缘点, 再按一定策略连接成轮廓, 从而构成边缘图像。

边缘精度和抗噪性是边缘检测的主要性能指标, 两者互相制约。若强调边缘精度, 则噪声产生的伪边缘会引起不合理的边界;若注重抗噪性, 则会造成边缘漏检和轮廓线的位置偏离。这样边缘检测可采用局部策略和全局策略, 所谓的局部策略法就是边缘点处理仅仅依靠其相邻边缘点的信息, 这类算法的复杂性较低, 但对噪声敏感, 且不能处理较为复杂的图像;全局策略则与之相反, 从全局优化角度出发, 边缘点的处理应在图像的较大范围内加以考虑, 这类算法是目前的研究热点。

2 算子介绍

2.1 Roberts算子

Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子, Robert算子图像处理后结果边缘不是很平滑。经分析, 由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应, 故采用上述算子检测的边缘图像常需做细化处理, 边缘定位的精度不是很高。

Roberts算子实现的理论基础:

G[i, j]=|f[i, j]-f[i+1, j+1]|+|f[i+1, j]-f[i, j+1]|;

其中G[i, j]表示处理后 (i, j) 点的灰度值, f[i, j]表示处理前该点的灰度值。

2.2 Priwitt算子

为在锐化边缘的同时减少噪声的影响, Prewitt从加大边缘增强算子的模板大小出发, 由2×2扩大到3×3来计算差分。

差分计算公式:

undefined

Prewitt算子实现的理论基础:

两个卷积核形成Prewitt边缘检测算子。图像中的每个点都用这两个核进行卷积, 取最大值作为输出。Prewitt边缘检测算子结果产生一幅边缘强度图像。

2.3 Sobel算子

Sobel在Prewitt算子的基础上, 对4-邻域采用带权的方法计算差分。Sobel 算子有两个, 一个是检测水平边沿的;另一个是检测垂直平边沿的。由于Sobel算子对于象素的位置的影响做了加权, 因此效果更好。

Sobel算子实现的理论基础:

与Prewitt边缘检测算子一样与其对应的模板卷积。图像中的每个点都用这两个核进行卷积, 取最大值作为输出。Sobel边缘检测算子也产生一幅边缘强度图像。

2.4 Laplace算子

二维函数f (x, y) 的拉普拉斯是一个二阶的微分, 定义为:

∇2f (x, y) =[∂2f/∂x2, ∂2f/∂y2]

可以用多种方式被表示为数字形式。对于一个3×3的区域, 经验上被推荐最多的形式是:

∇2f (x, y) =4f (x, y) -f (x+1, y) -f (x-1, y) -f (x, y+1) -f (x, y-1)

Laplace算子对应的模板:

定义数字形式的拉普拉斯的基本要求是, 作用于中心像素的系数是一个正数, 而且其周围像素的系数为负数, 系数之和必为0。

2.5 Kirsch算子

(1) 算法思想。

利用一组模板分别计算在不同方向上的差分值, 取其中最大的值作为边缘强度, 而将与之对应的方向作为边缘方向。

(2) 算子梯度计算。

设图像f, 模板为Wk (k=1, 2, …, 8) , 则边缘强度在 (x, y) 处为 (以·表示点乘) :

E (x, y) =Max{W1·f, W2·f …W8·f }= Wi·f , 方向为i模板方向。

(3) Krisch算子实现的理论基础。

8个卷积核组成了Kirsch边缘检测算子。每个点都用8个掩模进行卷积, 每个掩模都对某个特定边缘方向作出最大响应, 所有8个方向中的最大值作为边缘幅度图像输出。最大响应掩模的序号构成了边缘方向的编码。

2.6 Canny算子

(1) 图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置;

(2) 根据对信噪比与定位乘积进行测度, 得到最优化逼近算子。这就是Canny边缘检测算子;

(3) 类似与Marr (LoG) 边缘检测方法, 也属于先平滑后求导数的方法。

3 算子算法实现方法与过程

3.1 图象边缘检测的基本步骤

(1) 滤波。

边缘检测主要基于导数计算, 但受噪声影响。

但滤波器在降低噪声的同时也导致边缘强度的损失。

(2) 增强。

增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值完成。

(3) 检测。

但在有些图象中梯度幅值较大的并不是边缘点。最简单的边缘检测是梯度幅值阈值判定。

(4) 定位。

精确确定边缘的位置。

3.2 Roberts算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区;

(3) 每个像素依次循环, 用Roberts边缘检测算子分别用两种模板计算图像中各点灰度值, 取绝对值并对计算后的每一像素比较两种模板结果的大小, 取较大值;

(4) 将缓冲区中的数据复制到原图数据区。

3.3 Prewitt实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区, 将原图复制到两个缓冲区;

(3) 分别设置Prewitt算子的两个模板, 调用Templat ( ) 模板函数分别对两个缓冲区中的图像进行卷积计算;

(4) 两个缓存图像每个像素依次循环, 取两个缓存中各个像素灰度值较大者;

(5) 将缓冲区中的图像复制到原图数据区。

3.4 Sobel算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区, 将原图复制到两个缓冲区;

(3) 分别设置Sobel算子的两个模板, 调用Templat ( ) 模板函数分别对两个缓冲区中的图像进行卷积计算;

(4) 两个缓存图像每个像素依次循环, 取两个缓存中各个像素灰度值较大者;

(5) 将缓冲区中的图像复制到原图数据区。

3.5 Kirsch算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟两个和原图相同大小的图像缓冲区, 将原图复制到两个缓冲区;

(3) 分别设置Kirsch算子的模板1和模板2, 调用Template ( ) 模板函数分别对两个缓冲区中的图像进行卷积计算。求出两幅缓存图像中每个像素的较大灰度值存放在缓存图像1中, 并将缓存图像1拷贝到缓存图像2中;

(4) 同第三步, 以此类推, 分别设置Kirsch算子的模板3、模板4、模板5、模板6、模板7和模板8, 每次计算后, 求出两幅缓存图像中灰度值较大者存放在缓存图像1中;

(5) 最后将得到的结果缓存图像1复制到原图。

3.6 Laplace算子实现步骤

(1) 取得原图的数据区指针;

(2) 开辟一个和原图相同大小的图像缓冲区, 将原图复制到缓冲区;

(3) 设置Laplace模板参数, 调用Templat ( ) 函数对缓存图像进行卷积计算;

(4) 将计算结果复制回原图。

3.7 Canny算子实现的基本步骤

(1) 用高斯滤波器平滑图象;

(2) 用一阶偏导的有限差分来计算梯度的幅值和方向;

(3) 对梯度幅值进行非极大值抑制;

(4) 用双阈值算法检测和连接边缘。

参考文献

[1]贾永红.数字图像处理[M].武汉:武汉大学出版社, 2007.

[2]贾云德.机器视觉[M].北京:科学出版社, 2000.

[3]章毓晋.图象处理和分析[M].北京:清华大学出版社, 1999.

图像边缘检测方法研究 篇5

关键词:边缘检测;直方图均衡化;噪声;灰度差;灰度比值

O引言

图像边缘,顾名思义,就是不同区域的分界处,它反映了图像局部特征的不连续性,通常表现为灰度图像中灰度级的突变,彩色图像中颜色的突变,图像中纹理结构的突变等。传统的边缘检测方法是通过计算灰度变化最大的值来确定边缘点,比较简单,而且常用的检测算子有Roberts算子、Iarewitt算子、Sobel算子以及LOG算子。这些算子对噪声十分敏感,在实际应用中,图像又不可避免地会受到各种噪声源的干扰,而噪声会使我们检测到由它导致的假边缘。要解决这个问题,采用平滑滤波过滤噪声是常用的方法,但平滑滤波同时也会导致边缘强度的损失,这与增强边缘的目标是相矛盾的。

因此,针对噪声的问题,本文提出并采用了计算灰度比值的方法来降低噪声影响,用计算灰度比值来替代计算灰度差值,以增强图像边缘,提高对比度,从而将噪声的影响降低到最小。

图像边缘检测技术研究现状 篇6

所谓边缘是指图像中周围像素灰度有阶跃变化或屋顶状变化的那些像素的集合,是图像的最基本的特征[1]。它存在于目标与背景、目标与目标、区域与区域、基元与基元之间。边缘具有幅度和方向两个基本特征,沿边缘走向,像素值变化比较平缓;垂直于边缘的走向,像素值变化比较明显,可能呈现阶跃状,也可能呈现斜坡状(即屋顶状)。因此,边缘可以分为两种:一种为阶跃性边缘,它两边的像素灰度值有着明显的不同;另一种为屋顶状边缘,它位于灰度值从增加到减少的变化转折点。对于阶跃性边缘,二阶方向导数在边缘处呈现零交叉;而对于屋顶状边缘,二阶方向导数在边缘处取极值[2]。

边缘检测技术是图像处理和计算机视觉等领域最基本的技术。如何快速地、精确地提取图像边缘信息,一直是国内外研究的热点,然而边缘检测又是图像处理中的一个难题。早期经典算法包括边缘算子法,曲面拟合法,模版匹配法,门限化方法等等。近年来随着数学理论及人工智能的发展,又涌现出许多新的边缘检测方法,如小波变换和小波包的边缘检测法、基于数学形态学、模糊理论和神经网络的边缘检测法。

1 经典的边缘检测算子

经典的边缘检测方法是对原始图像中像素的某个小领域来构造边缘检测算子。常用的边缘检测方法有Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子、Canny算子等。

1.1 基于检测梯度极大值(即一阶微分)的边缘检测方法

目前应用比较多的是基于微分的边缘检测算法[3],梯度算子是其中重要的一个检测算法。由于边缘检测发生在图像灰度值变化比较大的地方,对应连续情况就是说函数梯度较大的地方,所以研究比较好的求导算子就成为一种思路。

边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。将边缘定义为图像中灰度发生急剧变化的区域边界。图像灰度的变化程度可以用图像灰度分布的梯度决定,因此可以用局部图像中像素的某小邻域来构造边缘检测子。以下是上述几种经典的边缘检测算子。

梯度是一个向量,指出灰度变化最快的方向和数量。最简单的边缘算子是用图像的垂直和水平差分来逼近梯度算子:

1.1.1 Roberts边缘检测算子

Roberts边缘检测算子是对每一个像素计算出(1)的向量,然后求出它的绝对值,再进行阈值操作。这就是Roberts边缘检测算子。

Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。检测水平和垂直边缘的效果好于斜向边缘,定位精确度较高,对噪声较敏感。

1.1.2 Prewitt边缘检测算子和Sobel边缘检测算子

Prewitt是使用两个有向算子(一个水平的,一个垂直的),每一个逼近一个偏导数。Prewitt边缘检测算子检测图像M的边缘,可以先分别用水平算子和垂直算子对图像进行卷积,得到的是两个矩阵,在不考虑边界的情况下也是和原始图像同样大小的M1,M2,它们分别表示图像M中相同位置处的两个偏导数。然后把M1,M2对应位置的两个数平方后相加得到一个新的矩阵G,G表示M中各个像素的灰度的梯度值(一个逼近)。然后就可以通过阈值处理得到边缘图像。

Sobel边缘检测算子和Prewitt边缘检测算子的不同就在于所使用的有向算子不一样而已。Sobel算子利用像素点上下、左右邻点的灰度加权算法,根据边缘点处达到极值这一现象进行边缘检测。Sobel算子对噪声具有平滑作用,提供较为精确的边缘方向信息,但它同时也会检测出许多的伪边缘,边缘定位精度不够高。

1.2 基于二阶导数的边缘检测方法

一阶微分组成的梯度是一种矢量,不但有大小还有方向,和标量比较,数据存储量比较大。Laplacian算子是对二维函数进行运算的二阶微分算子[4],是一个标量,与方向无关,属于各向同性的运算,对取向不敏感,因而计算量要小。Laplacian算子的优点是各向同性,但是它有两个缺点:1)边缘的方向信息丢失;2)Laplacian算子是二阶微分,双倍加强了图像中的噪声影响。

因此,Marr提出首先对图像用Gauss函数进行平滑,然后利用Laplacian算子对平滑的图像求二阶导数后得到的零交叉点作为候选边缘,这就是LOG算子[5]。选用高斯函数(即Gauss函数)是因为它近似满足边缘检测最优准则并且到达时频测不准关系的最小下界。用LOG边缘检测算子须用较大的窗口才能得到较好的边缘检测的效果。然而,大窗口虽然抗噪能力强,但边缘细节丢掉较多,而小窗口虽然获得较高的边缘定位精度,但对滤除噪声又不够有效。所以,这种方法在去除干扰和复杂形状的边缘提取之间存在矛盾。

1.3 Canny检测边缘算子

Canny算子是一个具有滤波、增强和检测的多阶段的优化算子[6]。在进行图像处理前,Canny算子先利用高斯平滑滤波器来平滑图像以去除噪声(即用高斯平滑滤波器与图像作卷积)。增强是将边缘的邻域(或局部)强度值有显著变化的点突出出来,一般通过计算梯度幅值来完成。Canny算法采用一阶偏导的有限差分来计算梯度的幅值和方向。对一个边缘来说,其一阶导数在边界处存在一个向上的阶跃,或者其二阶导数过零点。在处理过程中,Canny算法还将经过一个非极大值抑制的过程。最后Canny算法采用两个阈值来连接边缘。

2 新的边缘检测方法

2.1 基于小波变换的边缘检测算子

图像的边缘检测要求对于反映在低频的大部分灰度信息,希望能分辨其中的细微的明暗差别,即有高的低频频率分辨能力。对于高频的边缘和纹理希望能准确的定位,即有高的空域分辨力。用传统的尺度分析方法来分析信号时,往往只用了信号的频率信息,于是难以将信号中突变与噪声分开。而小波分析理论,不仅可通过每个尺度的变换结果来分析信号,还可以通过它们在不同尺度上的演化来分析信号特征。

小波变换是应用数学和工程学科中迅速发展的一个新领域,它是传统的Fourier变换的继承和发展。小波变换是时域-频域的局部变换,具有一定的分析非平稳信号的能力,主要表现在高频处的时间分辨率高,低频处的频率分辨率高,即具有变焦特性,特别适合于图像这一类非平稳信号的处理,更有效地从图像信号中提取有用信息。经典的边缘检测算子都没有自动变焦的思想。事实上,由于物理和光照的原因,图像中的边缘通常产生在不同尺度范围内,形成不同类型的边缘(如缓变和非缓变边缘),这些信息是未知的,尤其对于缓变部分,即低频和中频部分,是图像的大部分能量的所在,噪声对应于高频部分。可以肯定,用单一尺度的边缘检测算子不可能检测出所有的边缘,以及避免在滤除噪声时影响边缘检测的正确性。

基于小波变换的边缘检测算子是利用了小波函数良好的时频局部化特性及多尺度分析能力,不仅对图像的低频子带进行分解,还对图像的高频子带进行分解,可以满足不同分辨率下对局部细节进行边缘提取的需要,尤其对于含噪图像,在提取图像边缘时对噪声的抑制效果更好[7~9]。

2.2 基于数学形态学的边缘检测方法

数学形态学是图像处理和模式识别领域中的一门新兴学科,具有严格的数学理论基础,现已在图像工程中得到了广泛应用。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。获得的图像结构信息与结构元素的尺寸和形状都有关系,构造不同的结构元素,便可完成不同的图像分析。数学形态学包括二值形态学、灰度形态学和彩色形态学,基本变换包括膨胀、腐蚀、开启、闭合四种运算,并由这四种运算演化出了开、闭、薄化、厚化等,从而完成复杂的形态变换。目前随着二值形态法的应用越来越成熟,灰度和彩色形态学在边缘检测中的应用也越来越引起人们的关注并逐渐走向成熟[2]。

2.3 基于模糊理论的边缘检测方法

模糊理论创立于1965年,由美国柏克莱加州大学电气工程系教授zadeh在模糊焦合理论的基础上提出,模糊理论的特点是能够用模糊集合来反映事物的模糊性,不对事物做简单的肯定和否定,而是用集合隶属度来反映某一事物属于某一范畴的程度。由于成像系统、视觉反映等因素造成图像本身的模糊性,再加上边缘定义区分的模糊性,使人们在处理图像时很自然的想起了模糊理论的作用。其中较有代表性的是国外学者Pal和King提出的模糊边缘检测算法,其核心思想是:利用模糊增强技术来增加不同区域之间的对比,从而能够提取出模糊的边缘。基于模糊理论的边缘检测法的优势就是自身的数学基础,缺点是计算要涉及变换以及矩阵逆变换等较为复杂的运算,另外在增加对比的同时,也增强了噪声。

2.4 其他一些新的边缘检测方法

除了上面介绍的方法之外,还有基于分形几何的边缘检测法[10]、基于局部直方图相关的造影图像边缘检测方法[11]、基于灰色系统理论的图像边缘检测新算法[12]、神经网络法[13]、遗传算法、动态规划法、最小代价函数法等等。

3 结束语

通过本文的介绍可知,当今较为常用的图像边缘检测算法为经典检测算子、基于小波理论的算子和基于形态学等多种检测算法。每一种算法都有其特点,但也存在一定的不足,特别是检测精度和抗噪能力的均衡问题。因此,很多高校师生和社会的许多学者一直都致力于寻找更为全面的边缘检测算法,在这个领域还有很大的空间需要我们去努力,共同寻找更好的边缘检测算法。

摘要:本文首先回顾了经典的边缘检测算子,主要分析了各种算法的特点和处理性能,并对它们自身的优缺点进行了论述。接着对近年来出现的新的边缘检测方法进行了介绍,较全面地阐述了图像边缘检测技术的研究现状。

图像边缘检测方法研究 篇7

关键词:彩色图像,边缘检测,边缘保持滤波,Canny HSV

0 引 言

边缘检测是数字图像处理、图像分析和识别领域的经典研究课题之一。众所周知,现实生活中的大部分图像是彩色图像,与灰度图像比较,彩色图像能提供更多、更丰富的信息,如颜色信息等。而传统的边缘检测方法大多是基于灰度的,这对于彩色图像来说,它的彩色信息就没有被充分利用,又因彩色图像和灰度图像存在有差异性,往往不能直接将这些方法应用于彩色图像的边缘检测。其次,在彩色空间中,RGB彩色空间的表达最容易得到, 但是它同人的视觉感知的差异造成的基于空间的边缘检测结果难以同人的视觉感知结果相对应。由此同人视觉感知相接近的HSV彩色空间成为彩色边缘检测中经常使用的空间,且进行的边缘检测具有更好的性能[1]。作者在深入研究Canny最佳边缘检测算子时发现,传统的Canny算子在使用时依然会有边界闭合不是很好的地方。本文对此加以了改进,利用边缘保持滤波替代高斯滤波,在彩色空间用梯度的矢量计算方法替代传统的梯度标量计算方法,然后基于矢量角相似性准则,并结合空间上的邻接关系进行非极大值抑制,最后通过取高低阈值得到彩色图像边缘。

1 彩色图像边缘提取方法

边缘检测的本质是颜色差分的定义和计算问题。对于彩色图像来说,由于每个像素由各彩色分量决定,很难定义颜色差分的大小以及方向,因此彩色图像边缘的检测要困难许多。彩色图像边缘检测有三类经典方法:输出合成法、梯度合成法及矢量法3类[2]。

(1) 输出合成法应用最为普遍,基本思想是先对各彩色分量分别做边缘检测,然后合成各个检测结果作为最后的结果。

(2) 梯度合成法是通过合成各个彩色分量的梯度来进行边缘检测,它与方法(1)相比只需做一次边缘检测即可。

(3) 矢量法是把彩色空间看作一个多维矢量。本文介绍的基于HSV的Canny边缘检测算子,把各彩色空间分量分别看作一个矢量,在图像平滑时把颜色亮度和色度分开处理,并计算彩色空间的矢量梯度。由于它只需做一次边缘检测,无需建立复杂的模型,因此能较好地检测出物体的边缘。

2 改进型彩色图像Canny边缘检测算法

改进型彩色图像Canny边缘检测算法步骤如下:

(1) 用边缘保持滤波代替高斯滤波对图像滤波[3]

由于HSV彩色空间的重要优点是解除了强度和彩色信息的关系,这就使得可以直接采用灰度的空间滤波器仅对强度分量进行平滑滤波。由于仅对强度平滑,图像的原色调和饱和度得到了保留(即保留了它的原彩色),同时也降低了图像平滑处理的时间复杂度。

本文使用了不包括待处理像素点的8方向任意可指定长度的邻域作为平滑区域。利用卷积模板来标记这8个方向,如图1所示。

这8个方向最大程度地拟合了一个像素点可能处于的边界情况。所以无论该点是否处于边界上面,都可以将其归并在最相关的邻域内,并且能很好地保持边缘特性。

本文边缘保持滤波的具体算法为:

用下式计算各区域(如图1所示)的方差,找出方差最小的平滑区域S,这个区域就是待处理像素所在的最大相关邻域:

δ2=1ΝΙS(Ι(m,n)-Ι¯(x,y))2Ι¯(x,y)=1ΝΙSΙ(m,n)

式中:S代表像素I(x,y)所处的模板;I(m,n)代表模板S中的坐标为(m,n);(m,n)∈S的像素灰度值;Ι¯(x,y)代表模板S中所有像素的平均值;N代表模板中的像素个数。

S中像素的灰度均值Ι¯(x,y)赋给I(x,y),即Ι¯(x,y)=Ι(x,y);

对图像中所有的像素点都进行以上操作。

根据设定的迭代次数,迭代地进行以上操作。

(2) 计算梯度[4]

传统的Canny算子在2×2的领域内求有限差分均值来计算梯度幅值的算法,对边缘的定位比较准确,但对噪声过于敏感,容易检测出假边缘和丢失一些真实边缘的细节部分。特别是在对彩色图像进行边缘提取过程中,传统基于单独彩色平面图的梯度处理并不等于直接在彩色向量空间中的处理。再者,彩色分量的图像梯度与直接在彩色向量空间中计算梯度是不同的,因为分别计算图像梯度然后形成彩色图像将会导致错误的结果。为了得到较好的边缘信息,在HSV向量空间计算梯度,令h,s,v是HSV彩色空间沿H,S,V轴的单位向量,可定义向量为:

u=Ηxh+Sxs+Vxvv=Ηyh+Sys+Vyv

数量gxx,gyygxy定义为这些微量的点乘,如下所示:

gxx=uu=uΤu=|Ηx|2+|Sx|2+|Vx|2gyy=vv=vΤv=|Ηy|2+|Sy|2+|Vy|2gxy=uv=uΤv=ΗxΗy+SxSy+VxVy

H,SV及由此而来的gxy的函数。利用这种表示法,C(x,y)的最大变化率方向可以由角度给出:

θ=0.5*arctan[2gxy/(gxx-gyy)]

(x,y)点在θ方向上变化率的值由下式给出:

Fθ(x,y)={0.5*[(gxx+gyy)+(gxx-gyy)cos2θ+2gxysin2θ]}1/2

式中:θ(x,y)和Fθ(x,y)是与输入图像大小相同的图像,θ(x,y)的元素是在计算梯度后每个点的角度,Fθ(x,y)是向量空间梯度图像[2,5]。

(3) 对梯度幅值进行非极大值抑制

对任一像素点,进行以下的分析,以确定该像素点可能是边缘点或者不可能是边缘点。由于arctan(α)=arctan(α+π),若方向角θ0是前述arctan方程的一个解,则方向角θ0±π/2也是该方程的一个解。此外,由于梯度Fθ(x,y) = Fθ + π (x,y),所以梯度F仅需在半开区间[0,π]上计算θ的值,arctan提供两个相隔90°的值意味着该方程与两个正交方向上的每个点(x,y)相关。沿着这两个方向之一梯度F最大,而沿着另一个方向梯度F最小,所以最终结果是由选择每个点上的最大值产生。然后按上述方法遍历所有像素点,若该像素点在方向角方向上是梯度值最大,则保留;否则,将该点从边缘点集合中去除,运算结果将得到一幅细线图。

(4) 根据梯度直方图自适应地计算高低阈值,在梯度图的处理中,平均梯度是一种常用的阈值,本文算法选择平均梯度作为高阈值[1],这样求出来的平均梯度阈值更能反映边缘的特征。

基于非极大值抑制后的梯度图F(i,j)构造梯度直方图,假设其梯度取值为g0,g1,…,gn(g0< g1<…< gn),梯度值为gi(i=0,1,…,n)的像素点个数为qi,那么对每个梯度值对应的像素点数计算得到梯度直方图。高阈值Th通过下式得到:

Τh={i=1ngiqi/i=1nqiifg0=0i=0ngiqi/i=0nqiifg00

然后根据指定的低阈值所点的比例求出低阈值Tl。

Τl=Τh*ratio

在本文算法中ratio取0.4。

(5) 用第(4)步得到的高低阈值对边缘点进行连接。

3 实验结果与分析

采用VC 6.0实现本文的算法,仿真得到的结果如下:

由于采用线状方向平滑,该算法具有很好的边缘保持特性,得到的结果如图2所示。从图2的仿真结果可以看出,对于Lena图,本文算法的检测结果在帽沿处很明显的闭合了,而原始的Canny算子基于边缘合成(以下简称传统的Canny)的则没有闭合[6]。比较图2(b)、图2(c)的两幅边缘检测图像和表1和表2的数据,可以明显地看出基于矢量空间的彩色Canny检测出的轮廓细节较各彩色分量边缘合成方法丰富。在图3中,Lena图加入噪声密度为0.02的椒盐噪声得到Lena噪声图(见图3(a))。从图3可以看出,在迭代两次滤波的情况下,可以将原图像中孤立的椒盐噪声点基本去除,且能保持很好的边缘特点,有效地说明了本文Canny算子在有椒盐噪声的情况下与传统的Canny算子相比,检测到的边缘更趋于闭合。

C/A,C/B大小反映了边缘线型连接程度,而边缘的线型连接程度对总体的边缘评价的影响体现在错检和漏检中,当边缘连接程度很差时,错检、漏检就多,反之,边缘连接程度越高,错检、漏检少,提取的边缘效果越好。C/A,C/B数值越小,线型连接程度越好,提取的边缘效果越好。C/A,C/B这两个值中C/B的权重最大,它的数值越小,说明线型连接程度越好[7]。

4 结 语

本文对传统Canny边缘检测算子提出了以下改进:利用边缘保持滤波替代高斯滤波;在彩色空间用梯度的矢量计算方法替代传统的梯度标量计算方法;基于矢量角相似性准则,并结合空间上的邻接关系进行非极大值抑制。通过仿真实验的验证,本文算法在边界闭合方面优于传统Canny算子且更能体现边缘细节和更具抗噪能力。

参考文献

[1]王文明,赵荣椿.不同彩色空间的彩色图像边缘检测研究[J].计算机测量与控制,2006,14(12):1607-1608.

[2]林佑生,石教英.基于HVS的彩色图像边缘检测算子[J].中国图象图形学报,2005,10(1):43-47.

[3]刘兴洪,汪林林.一种图像边缘保持的改进方向平滑算法[J].计算机科学,2006,33(10):210-212.

[4]冈萨雷斯,伍兹.数字图像处理[M].2版.北京:电子工业出版社,2007.

[5]刘加海,白洪欢,黄微凹.基于彩色和边缘信息融合的道路分割算法[J].浙江大学学报:工学版,2006,40(1):29-32.

[6]WANG Yue,SHEN Ding-gang,KHWANG Teoh Earn.Lane detection and tracking using BOSnake[J].Image Vi-sion Computation,2004,22(4):269-280.

[7]林卉,舒宁,赵长胜.一种新的基于连通成分的边缘评价方法[J].国土资源遥感,2003(3):37-40.

[8]胡静波.基于小波变换与改进中值滤波的红外图像去噪[J].现代电子技术,2011,34(18):50-52.

[9]李景兰,刘怀强.基于聚类和小波变换的彩色图像分割方法[J].现代电子技术,2008,31(14):108-110.

图像边缘检测方法研究 篇8

关键词:数字图象处理,边缘检测方法,Matlab对比研究,微分算子法

边缘检测技术在图像处理与计算机视觉中占有特殊的位置,它是底层视觉处理中最重要的环节之一,也是图像分割、目标区域识别、区域形状提取等图像分析方法的基础[1]。近年来,边缘检测技术已经逐渐被广泛地应用于医学、林业、遥感、工程技术中的零部件检查、故障诊断以及探伤等更多领域。但是在实际应用中,不断涌现的先进新技术、新方法给人们如何选择合适的、更佳的图像边缘检测方法提出了新的难题。本文介绍了实际中常用的几种边缘检测方法,它们是微分算子法(Robert算子、Sobel算子、Prewitt算子和Kirsch算子)、高斯-拉普拉斯算子法、坎尼算子法、零交叉法和Frei-chen边缘检测法。基于Matlab的实现对不同算子的边缘检测方法的效果进行了比较,总结出各种算法的优缺点,为实际应用中选择最佳边缘检测方案提供了实验依据[2,3]。

1 常用图像边缘检测方法

图像边缘是图像最基本的特征,而边缘检测运算本质上是在图像强度级中检测重要局部变化的运算。其算法主要是基于图像灰度的一阶和二阶微分,但微分的计算对噪声很敏感,因此往往需要先使用滤波器将包含噪声的高空间频率进行滤波,然后再运用各种边缘检测算子对图像进行处理,以确保边缘检测趋向于理想化[4,5]。常用的边缘检测算法主要有微分算子法、高斯-拉普拉斯算子法、坎尼算子法、零交叉法和Frei-chen边缘检测法等,这些常用算法几乎都能用Matlab图像处理工具箱中相应的函数命令来实现,由于工具箱中的edge函数只能处理灰度图,因此在介绍算法及Matlab实现前,必须先运用工具箱中的rgb2gray函数命令将彩色样图灰度化,程序代码:

i=imread(′d:yangtu.bmp′);j=rgb2gray(i);imshow(j)

形成的灰度图如图1所示[6,7]。

下面分别介绍常用检测方法。

1.1 微分算子法

由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处灰度变化较大,故该微分计算值较高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,则为边缘点。

1.1.1 Robert算子

Robert算子是一种简单的利用局部差分算子寻找边缘的基于2×2的梯度算子。这种算子提供了梯度幅度值最简单的逼近公式:

Robert算子的卷积模板如图2所示。Roberts算子对具有陡峭的低噪声的图像效果较好。其Matlab程序代码为:

u=edge(j,′roberts′,0.07);imshow(u)u=edge(j,′roberts′,0.1);imshow(u)

阈值分别取0.07和0.1,程序执行后的检测图像如图3所示。

1.1.2 Sobel算子

Sobel算子是基于梯度算子3×3的邻域。它的卷积模板如图4所示。

这两个模板分别应用于输入图像水平方向的梯度分量Gx和垂直方向的梯度分量Gy。

梯度幅度值计算公式为:

Sobel算子对灰度渐变和噪声较多的图像处理得较好,其Matlab程序代码如下:

v=edge(j,′sobel′,0.07);imshow(v)v=edge(j,′sobel′,0.1);imshow(v)

阈值分别取0.07和0.1,程序执行后的检测图像如图5所示。

1.1.3 Prewitt算子

Prewitt算子与使用Sobel算子的方法一样,图像中的每个点都用图6所示的模板做卷积,取最大值作为输出。该算子对灰度渐变和噪声较多的图像处理得较好,其Matlab程序代码为:

x=edge(j,′prewitt′,0.05);imshow(x)x=edge(j,′prewitt′,0.1);imshow(x)

阈值分别取0.05和0.1,程序执行后的检测图像如图7所示。

1.1.4 Kirsch算子

由Kirsch算子考察数字图像中第一个像素的8个邻点灰度变化,以其中的3个相邻的点的加权减去剩下5个邻点的加权和。令3个邻点环绕不断移位,取其差值的最大值作为Kirsch算子值。通常,Kirsch算子由图8所示的8个模板组成。图像上的每个像素都用这8个模板运算后,选择其中最大值作为该像素的边缘强度。在Matlab图像处理工具箱中没有Kirsch算子的算法程序,但可以用VC++语言等来编写该算法程序。

1.2 高斯-拉普拉斯算子法

高斯-拉普拉斯算子法(Log算子)是一个二阶算子,将在边缘处产生一个陡峭的零交叉。拉普拉斯算子是一个线性的、移不变的算子,它的传递函数在频域空间的原点是零,因此经拉普拉斯滤波过的图像具有零平均灰度。Log算子先用高斯低通滤波器将图像进行预先平滑,然后用拉普拉斯算子找出图像的陡峭边缘,最后用零灰度值进行二值化产生闭合、连通的轮廓,消除了所有内部点。Log算子的函数定义为:

其卷积模板如图9所示。

Matlab程序代码如下:

y=edge(j,′log′,0.007);imshow(y)y=edge(j,′log′,0.01);imshow(y)

阈值分别取0.007和0.01,程序执行后的检测图像如图10所示。

1.3 坎尼算子法

Canny算子[8]是一种具有滤波、增强和检测的多阶段的边缘检测算子,它检测边缘的方法是寻找图像梯度的局部极大值,梯度是用高斯滤波器的导数计算的。Canny方法使用两个阈值来分别检测强边缘和弱边缘,而且仅当弱边缘与强边缘相连时,弱边缘才会包含在输出中。因此这种方法不容易受到噪声的干扰,能够检测到真正的弱边缘[7,9],其Matlab程序代码如下:

w=edge(j,′canny′,0.15);imshow(w)w=edge(j,′canny′,0.3);imshow(w)

阈值分别取0.15和0.3,程序执行后的检测图像如图11所示。

1.4 零交叉法

零交叉法(Zero-cross)是先用指定的滤波器对图像进行滤波,然后寻找零交叉点作为边缘,其Matlab程序代码如下:

h=fspecial(′gaussian′,5);z=edge(j,′zerocross′,0.05,h);imshow(z)z=edge(j,′zerocross′,0.07,h);imshow(z)

阈值分别取0.05和0.07,程序执行后的检测图像如图12所示。

1.5 Frei-chen边缘检测法

Frei-chen边缘检测法也是一种先滤波平滑,然后求边缘的方法,它采取的滤波函数是对称的指数函数L(x,y)。这里证明了它在最大信噪比的情况下也是一种最佳匹配滤波器。函数公式如下:

式中:参数a将直接影响该方法的性能。当a→0时,L(x,y)的宽度就越窄,因此平滑滤波的能力就差,抗干扰的能力减弱,但边缘的定位精确度提高;当a→1时,平滑的能力增强,即抗干扰的能力增强,但边缘的细节信息丢失增多,因此在边缘的精度上受到影响。Matlab图像处理工具箱中也没有相应算法程序,但同样可用VC++语言等来编写该算法程序。

2 基于Matlab的实验结果对比分析

通过以上各种检测方法的介绍、分析可知,通过阈值确定边缘点的存在。因此,如果梯度的幅度值大于阈值,那么可以推断在这一点上存在边缘点,否则没有边缘点。如果阈值选择很大,那么有可能没有检测出边缘点;若阈值很低,则会检测出许多噪点被误认为是边缘点,理想的边缘检测目标就是选择适当的阈值。为了进一步了解以上常用边缘检测方法的特性,现基于Matlab对常用的图像边缘检测方法进行比较[6,7,8,9,10]。程序代码如下:

实验结果的比较图像如图13所示。

由比较图像可看出,Robert算子检测边缘的结果是定位精度比较高,但是边缘比较粗,边缘定位不是很准确,并且容易丢失部分边缘信息,如花瓶右上部分边缘信息的丢失,虽然对噪声敏感,但该算子对陡峭的低噪声图像响应较好。Sobel算子和Prewitt算子对图像边缘定位比较准确完整,有一定的抗噪能力,但边缘较宽,并存在伪边缘的现象,边缘定位精度低,视觉效果不是很好。Log算子先用高斯低通滤波器将图像进行预先平滑,然后用拉普拉斯算子找出图像的陡峭边缘,克服了拉普拉斯算子抗噪能力较差的缺点。Canny算子亦采用高斯函数对图像进行了平滑处理,因此同Log算子一样具有较强的抗干扰能力,能较准确地检测图像边缘,获得较丰富的图像细节信息;同时能检测出真正的弱边缘,边缘的连续性也较好。零交叉法对边缘的定位最为准确,但屏蔽噪声的能力较差。

3 结语

边缘检测是数字图像处理中一个重要环节,同时也是很复杂的问题。通过以上理论分析和对实验结果进行比较分析可知,不同的边缘检测方法对同一幅图像所产生的边缘提取效果不尽相同,都有各自的优缺点和使用范围。早期的经典算法包括边缘算子法、曲面拟合法、门限化法等,近年来随着数学理论及人工智能的发展,又涌现出如基于小波变换、模糊理论、神经网络等的边缘检测方法[4,5]。目前,在实际运用中,根据具体应用要求和实际的工程背景选择最合适的边缘检测方法,以达到最佳的边缘检测效果仍是图像处理中研究的热点。

参考文献

[1]ACHARYA Tinku,RAY Ajoy K.数字图像处理原理与应用[M].田浩,译.北京:清华大学出版社,2007.

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

[3]曾欢,王浩.图像边缘检测算法的性能比较与分析[J].现代电子技术,2006,28(14):53-55,58.

[4]刘禾.数字图像处理及应用[M].北京:中国电力出版社,2005.

[5]景晓军.图像处理技术及应用[M].北京:国防工业出版社,2005.

[6]飞思科技产品研发中心.Matlab 6.5辅助图像处理[M].北京:电子工业出版社,2003.

[7]尹凤领,霍丙全.图像处理技术的Matlab实现[J].科技信息,2007(5):41-42.

[8]刘怀贤,姚晓东,常青.基于Canny算子的红外图像边缘检测研究[J].激光与红外,2007,37(5):474-477.

[9]关琳琳,孙媛.图像边缘检测方法比较研究[J].现代电子技术,2008,31(22):96-98,101.

沥青混合料图像边缘检测对比研究 篇9

早在SHRP(Strategic Highway Research Program)计划中研究者就意识到沥青混合料的微观结构对其路用性能存在极为重要的影响。随着数字图像处理技术越来越多地应用到工程材料领域,采用数字图像处理技术分析沥青混合料微观组成结构的研究越来越受到重视。边缘是图像最基本的特征之一,是指周围像素点灰度值有阶跃变化或屋顶状变化的像素点的集合。边缘能大大减少所要处理的信息,同时又保留了图像中物体的形状信息。在沥青混合料微观材料和结构研究中,如何对沥青胶浆和集料进行有效的边缘检测是进行图像分割和二值化的前提。国内外很多学者对边缘检测问题进行了广泛的研究,提出了很多边缘检测方法。现有的边缘检测方法可分为三大类:第一类是基于某种固定的局部运算方法,如微分法,经典跟踪法等[1];第二类是以能量最小化为准则的全局提取方法[2],如松弛法,神经网络分析法等;第三类是以小波变换[3]、数学形态学[4]、分形理论等近年来发展起来的高新技术为代表的边缘检测方法[5]。也有很多学者对多种边缘检测方法进行了对比研究[6,7,8,9],但大多使用Lena图像或者简单的仿真图像作为评价图像,对方法的边缘定位精度和抗噪声性能分析不足。本文以生产现场的沥青混合料图像为评价图像,对Roberts算子、Sobel算子、Prewitt算子、Kirsch算子、Laplacian算子、LOG算子和数学形态学边缘检测方法的边缘定位精度、抗噪声能力和计算时间进行对比研究。

2边缘检测方法

2.1 一阶微分算子

Roberts算子是根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻像素点灰度值的差分来计算梯度。Roberts算子的两个模板分别为:

[01-10][100-1]

计算出各像素点的梯度幅值后,设置梯度幅值阈值TH,梯度幅值大于TH的像素点为边缘点。

Sobel算子是在以像素点(i,j)为中心的邻域上来计算梯度,将其上、下、左、右四个邻域的像素点灰度值加权差,与之接近的邻域的权最大。Sobel算子的两个模板分别为:

[-1-2-1000121][-101-202-101]

求出梯度幅值后,设置梯度幅值阈值TH,梯度幅值大于TH的像素点为边缘点。

Prewitt算子的原理和Sobel算子的原理是一致的,只是计算差分时加权系数不同,在此不再赘述。Prewitt算子的两个模板分别为:

[-1-1-1000111][-101-101-101]

求出梯度幅值后,设置梯度幅值阈值TH,梯度幅值大于TH的像素点为边缘点。

Krisch算子的原理与Sobel算子的原理类似,由8个模板组成。将图像中的每个像素点都分别用这8个模板进行运算,每个模板都对某个特定的边缘方向做出最大响应,能够在0°,45°,90°,135°,180°,225°,270°,315°方向上进行边缘检测。选取8个方向中的最大值作为梯度幅度,然后设置梯度幅值阈值TH,梯度幅值大于TH的像素点为边缘点。Krisch算子的8个模板及其检测方向为:

[-3-35-305-3-35][-355-305-3-3-3][555-30-3-3-3-3]

0° 45° 90°

[55-350-3-3-3-3][5-3-350-35-3-3][-3-3-350-355-3]

135° 180° 225°

[-3-3-3-30-3555][-3-3-3-305-355]

270° 315°

2.2 二阶微分算子

Laplacian算子是二阶偏导数之和,可用差分来近似微分运算,其离散计算形式为:

ᐁ2f(i,j)=f(i+1,j)+f(i,j+1)+f(i-1,j)+f(i,j-1)-4f(i,j) (1)

Laplacian算子的两个模板分别为:

[0-10-14-10-10][-1-1-1-18-1-1-1-1]

Laplacian算子在图像存在噪声时,由于微分的放大作用,噪声成分加强,边缘的细节受到影响,边缘检测效果不佳。此外,由于它是一个标量,属于各向同性的运算,因此无法检测图像边缘的方向。针对Laplacian算子的缺点,Marr和Hildreth提出了一种改进的算子即LOG算子,首先将图像与高斯滤波模板进行卷积来平滑图像降低噪声,然后使用Laplacian算子近似地找出图像二阶导数的零交叉点,从而检测出图像的边缘。为了避免检测出一些非显著的边缘,一般选择一阶导数大于一定数值的零交叉点作为边缘点。LOG算子的模板如下:

[00-1000-1-2-10-1-216-2-10-1-2-1000-100]

2.3 数学形态学边缘检测方法

数学形态学边缘检测方法的基本思想是对图像用一定的结构元素进行操作后与原图像进行数学形态学减,一般采用膨胀腐蚀型梯度算子,即用膨胀后的图像减去腐蚀后的图像即可得到图像中目标的边缘。但获得的边缘不是单像素宽连通的,所以需要对其进行细化。可用二值数学形态学中的区域骨架提取算法对获得的边缘进行细化,从而得到单像素宽连通的边缘。

3沥青混合料图像边缘检测

分别用前述边缘检测方法对生产现场的沥青混合料图像进行边缘检测,检测效果如图1所示,检测时间如表1所示。

从上述实验结果可以看出,Roberts算子对噪声十分敏感,对图像没有平滑作用,对沥青混合料图像进行边缘检测后虽然能得到连续的边缘,但是边缘比较粗大,定位精度较低,由于算法比较简单所以检测所需时间少。Sobel算子、Prewitt算子和Kirsch算子对图像具有平滑作用,但对噪声也比较敏感,进行边缘检测后能得到连续的边缘但十分粗大,定位精度较低,且计算量比较大,检测所需时间长,其中Kirsch算子在8个方向上进行计算,计算量更大,检测时间是三者中最长的。Laplacian算子和LOG算子是二阶微分算子,计算量比较大,对噪声非常敏感,对沥青混合料图像进行边缘检测后均出现了十分粗大的伪边缘。数学形态学边缘检测方法对沥青混合料图像进行边缘检测后能得到清晰的边缘,定位精度高,对噪声不敏感,检测速度快。因此选取数学形态学边缘检测方法作为沥青混合料图像的边缘检测方法。

4结语

以生产现场的沥青混合料图像为评价图像,分别用Roberts算子、Sobel算子、Prewitt算子、Kirsch算子、Laplacian算子、LOG算子和数学形态学边缘检测方法进行边缘检测,对边缘检测结果进行了深入分析,对这些边缘检测方法的边缘定位精度、抗噪声能力和计算时间进行了比较。本文的研究不仅为沥青混合料图像边缘检测方法的选取提供了理论依据,而且也可以为其他图像边缘检测方法的选取提供可靠依据。

摘要:以沥青混合料图像为评价图像,分别用Roberts算子、Sobel算子、Prewitt算子、Kirsch算子、Laplacian算子、LOG算子和数学形态学边缘检测方法进行边缘检测,对边缘检测结果进行了深入分析,对上述边缘检测算法的边缘定位精度、抗噪声能力和计算时间进行了比较,得出选择数学形态学边缘检测方法作为沥青混合料图像的边缘检测方法是合适的。

关键词:沥青混合料图像,边缘检测,定位精度,抗噪能力,计算时间

参考文献

[1]CANNY J.A computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine Intelli-gence,1986,8(6):679-698.

[2]马建林,崔志明,张娜敏,等.基于一种新的Snake模型的序列图像边缘提取算法[J].计算机应用,2008,28(4):982-985.

[3]宰文姣,汪华章.基于双树复小波的图像边缘检测[J].计算机应用,2008(28):202-206.

[4]徐国保,王骥,赵桂艳,等.基于数学形态学的自适应边缘检测新算法[J].计算机应用,2009,29(4):997-999.

[5]季虎,孙即祥,邵晓芳,等.图像边缘提取方法及展望[J].计算机工程与应用,2004(14):70-73.

[6]李彩花,胡晓平,李亚芹.图像处理中滤波器及边缘检测算法的实验与研究[J].机电工程技术,2008,37(9):47-49.

[7]王苑楠.图像边缘检测方法的比较和研究[J].计算机与数字工程,2009,37(1):121-123.

[8]熊秋菊,杨慕升.数字图像处理中边缘检测算法的对比研究[J].机械工程与自动化,2009(2):43-47.

图像边缘检测方法研究 篇10

边缘检测是图像处理领域的重要内容, 是进行模式识别和图像信息提取的基本手段。一方面, 图像的边缘往往对应于生成图像的物理世界中对象的重要特征, 也是图像分割所依赖的重要特征;另一方面, 边缘检测使图像处理的数据量大大减少, 有利于后续的特征提出和模式识别, 因此对边缘检测算法的研究得到了广泛的关注。本文将介绍四种常用的边缘检测算法, 并对其进行了讨论与比较。

图像的边缘是图像的基本特征。所谓边缘是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘广泛地存在于物体与背景之间、物体与物体之间、基元与基元之间。它的存在是灰度不连续造成的。我们知道, 即使很简单的景物中也包含着大量的细节, 在图像中表现为强度的非连续性。

边缘检测是图像分割、目标区域识别、区域形状提取等图像分析领域十分重要的基础, 是图像识别中提取图像特征的一个重要内容。图像理解和分析的第一步往往就是边缘检测, 目前它已成为机器视觉研究领域最活跃的课题之一, 在工程应用中占有十分重要的地位。

由于边缘检测的重要性, 人们提出了许多适用于不同场合的边缘检测算法。然而, 在实际图像处理中, 精确检测边缘具有相当的难度。对于自然图像, 检测的主要困难在于这些变化发生在一个很宽的尺度范围内。如果分别地看每个图像的像素, 就会发现像素之间的灰度级在变化。实际图像中的大多数边缘是锐边, 其灰度变化是由少量像素的陡变组成。还有一些边缘是模糊的, 其对应的灰度变化是大量的像素值缓慢改变引起的, 这些不同类型的灰度变化在图像中是不可分的。因此仅用一个算子不可能对检测不同程度的灰度变化都是最适合的。于是人们开始研究使用不同尺寸的算子。

2 边缘检测算法

物体的边缘是由灰度的不连续性所反映的。经典的边缘检测方法是考察图像的每个像素的某个邻域内灰度的变化, 利用边缘邻近一阶或二阶导数变化规律, 用简单的方法检测边缘, 这种方法称为边缘检测局部算子法。

两个具有不同灰度值的相邻区域之间总存在边缘, 边缘是灰度值不连续的表现, 其是原图像上灰度变化最剧烈的地方。传统的边缘检测正是利用了这一点, 对图像的各个像素进行一阶微分或二阶微分确定边缘像素点。在图像处理中一般用小区域的模版卷积来近似图像梯度。通常是对二维图像的x方向y方向分别用不同的模板, 这两个模板组合起来可以构成一个梯度算子。图像处理发展到今天人们已经提出了很多算子, 例如Roberts算子、Prewitt算子、Sobel算子和Laplacian算子等。其实构造这些算子的基本思想是统一的, 它们的区别主要是模板的大小和元素值的不同。

2.1 Roberts算子

Roberts算子是最古老的算子之一, 是一种交差差分算子。由于它只使用当前像素的2 2邻域, 是最简单的梯度算子, 所以计算非常简单。它的卷积掩模也就是算子模板如图所示:

从上面的Roberts算子模板的形式可以看出, Roberts算子计算时利用的像素数一共有4个, 可以用模板对应4个像素与模板相应的元素相乘相加得到。

Roberts算子边缘定位准, 主要缺点是其对噪声的高度敏感性, 原因在于仅使用了很少几个像素来近似梯度。实用于边缘明显而且噪声较少的图像分割。

2.2 Prewitt算子

上述Roberts算子的模板是2 2的, 比较常见的还有3 3的模板, 例如Prewitt算子。

对于3 3的卷积掩模, 在8个可能方向估计梯度, 具有最大幅值的卷积给出梯度方向。

近似图像函数一阶导数的算子由于具有确定梯度方向的能力, 有时被称作罗盘算子。对于每个算子我们只给出前面三个3 3掩模, 其他的可以通过简单旋转得到。Prewitt算子的模板如图所示:

由上面的Prewitt算子的模板可以看出, Prewitt算子进行计算时要用到9个像素。对于每一个方向的梯度, 可以用模板对应的9个像素与模板相应的元素相乘相加得到, 其计算过程与Roberts算子相似。

Prewitt算子对噪声有抑制作用, 抑制噪声的原理是通过像素平均。但是像素平均相当于对图像的低通滤波, 所以Prewitt算子对边缘的定位不如Roberts算子。

2.3 Sobel算子

采用梯度微分锐化图像, 同时会使噪声、条纹等得到增强, Sobel算子则在一定程度上克服了这个问题。Sobel算子不像普通梯度算子那样用两个像素的差值, 这就导致了两个优点:a由于引入了平均因素, 因而对图像中的随机噪声有一定的平滑作用。b由于它是相隔两行或两列之差分, 故边缘两侧元素得到了增强, 边缘显得粗而亮。

Sobel算子的模板也是3 3的, 只是它的模板元素与Prewitt算子有所不同。在Prewitt算子中像素邻域对当前像素产生的影响是等价的, 而Sobel算子根据邻域像素与当前像素的距离有不同的权值, 一般是距离越小, 权值越大。Sobel算子的模板如图所示:

Sobel算子通常用于水平和垂直边缘的一个简单检测算子。

Sobel算子和Prewitt算子都是加权平均, 但是Sobel算子认为, 邻域的像素对当前像素产生的影响不是等价的, 所以距离不同的像素具有不同的权值, 对算子结果产生的影响也不同。一般来说, 距离越大, 产生的影响越小。

2.4 Laplacian算子

为了突出增强图像中的孤立点、孤立线或孤立端点, 在某些实际用途中常采用Laplacian算子, 这个算子是旋转不变算子。

上面的这些算子都是一阶导数算子, 在图像处理中经常使用的还有二阶导数算子, 例如Laplscian算子就是二阶微分算子。可以认为二阶导数是一阶导数的导数, 也就是差分的差分。Laplacian算子就利用了二阶导数信息。Laplacian算子是近似只给出梯度幅值的二阶导数的流行方法。通常使用3 3的掩模, 根据邻域不同可以分为4邻域和8邻域。

这个算子对于边缘是敏感的。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置, 此算子可以用二次微分正峰和负峰之间的过零点来确定。

Lapscian算子的模板也是3 3的, 如图所示:

如果邻域系统是4邻域, Laplacian算子的

如果邻域系统是8邻域, Laplacian算子的

Laplacian算子对噪声比较敏感, 所以图像一般先经过平滑处理, 因为平滑处理也是用模板进行的, 所以, 通常的分割算法都是把Laplacian算子和平滑算子结合起来生成一个新的模板。Laplace算子有一个缺点是它对图像中的某些边缘产生双重响应。

3 算法的比较

文中采用的是VC++编程语言建立了上述4种算法的边缘检测算法。对原始图像以Roberts算子、Sobel算子、Prewitt算子、Laplacian算子对图像边缘检测实现, 通过实验结果的比较, 可以了解各种算法的特点和优点。实验结果如图所示, 可以明显看到他们的差别。

根据其效果, Roberts算子对边缘定位比较准, 所以分割结果的边界宽度不像后面的Prewitt分割结果那样宽。但是Roberts算子由于不包括平滑, 对噪声比较敏感, 在图像噪声较少的情况下, 分割的结果还是相当不错的。

Prewitt算子有一定的抗噪能力。但是这种抗噪能力是通过像素平均来实现的, 相当于低通滤波, 所以图像有一定模糊。

Soble算子对噪声有抑制作用, 因此不会出现很多孤立的边缘像素点。不过从图中可以看到, Soble算子对边缘的定位不是很准确, 图像的边界宽度往往不止一个像素, 不适合对边缘定位的准确性要求很高的应用。与Prewitt相似, Sobel算子也是通过像素平均来实现的, 也有一定的抗噪能力, 同时图像也产生了一定的模糊。

由于Laplacian算子利用的是二阶导数信息, 对噪声比较敏感, 所以分割结果中在一些像素上出现了散碎的边缘像素点。不过Laplacian算子对边缘的定位还是比较准的。

4 结束语

在图像处理中, 边缘检测有着非常重要的作用, 是图像处理的重要基础。本文讨论和比较了几种常用的边缘检测算子, 一阶导数算子Roberts、Prewitt、Sobel和二阶导数算子Laplacian等4种常用的图像边缘检测算子, 并且通过指纹图像边缘检测的例子来比较它们的检测效果, 分析了各个算子的边缘检测效果及抗噪能力。有助于了解它们的优点和不足, 对学习边缘检测和具体工程应用具有很好的参考价值。

Prewitt算子和Sobel算子都是一阶的微分算子, 而前者是平均滤波, 后者是加权平均滤波且检测的图像边缘可能大于2个像素, 这两者对灰度渐变低噪声的图像有较好的检测效果, 但对于混合多复杂噪声的图像, 处理效果则不理想。Sobel边缘检测的图像纹理较清楚, 但整个图像过于模糊。Roberts边缘检测和Prewitt边缘检测效果相似, 轮廓清楚, 但纹理有待提高。Laplace边缘检测的效果较为适中。通过比较可以为具体的图像处理应用提供参考作用。

参考文献

[1]李捷, 唐星科, 蒋延军.几种边缘检测算法的比较研究.信息技术.2007.9

[2]李葆青, 文山.边缘检测准则与几种典型算法.六盘水师范高等专科学校学报.2006.6

[3]周心明, 兰赛, 徐燕.图像处理中几种边缘检测算法的比较.现代电力.2008.6

[4]何斌, 马天予, 等.Visual C++数字图像处理.北京:人民邮电出版社, 2002.

[5]吴炯, 等.数字图像中边缘算法的实验研究.微计算机信息, 2004, 20 (5)

上一篇:空间向量法下一篇:最大概率