
收稿日期:2003207201;修返日期:2003208215
MAT LAB 在图像边缘检测中的应用
张艳群,孟凡荣
(中国矿业大学计算机学院,江苏徐州221008)
摘 要:简要介绍了边缘检测技术,结合实例详细分析了M AT LAB 在图像边缘检测中的具体应用方法。关键词:M AT LAB ;图像处理;边缘检测
中图法分类号:TP391141 文献标识码:A 文章编号:100123695(2004)0620144203
Application of MAT LAB in Image Edge Detection
ZH ANG Y an 2qun ,ME NG Fan 2rong
(College o f Computer Science &Technology ,China Univer sity o f Mining &Technology ,Xuzhou Jiangsu 221008,China )
Abstract :This paper briefly introduces the techn ology of edge detection.C ombined with practical exam ples ,the specific application of M AT LA B in edge detection is analyzed in detail.K ey w ords :M AT LA B ;I mage Processing ;Edge Detection
M AT LAB 自1984年由美国MathW orks 公司推向市场以来,历经十几年的发展,现已成为国际公认的最优秀的科技应用软件。M AT LAB 既是一种直观、高效的计算机语言,同时又是一个科学计算平台,它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的
500多个数学和工程函数,工程技术人员和科学工作者可以在
它的集成环境中交互或编程以完成各自的计算。
M AT LAB 软件具有很强的开放性和适应性。在保持内核
不变的情况下,M AT LAB 可以针对不同的应用学科推出相应的工具箱(T oolbox ),目前已经推出了图像处理工具箱、信号处理工具箱、小波工具箱、神经网络工具箱以及通信工具箱等多个学科的专用工具箱,极大地方便了不同学科的研究工作。
M AT LAB 的图像处理工具包是由一系列支持图像处理操
作的函数组成的,所支持的图像处理操作有:几何操作、区域操作和块操作;线性滤波和滤波器设计;变换(DCT 变换);图像分析和增强;二值图像操作等。图像处理工具包的函数,按功能可以分为以下几类:图像显示;图像文件输入与输出;几何操作;像素值统计;图像分析与增强;图像滤波;线性二维滤波器设计;图像变换;领域和块操作;二值图像操作;颜色映射和颜色空间转换;图像类型和类型转换;工具包参数获取和设置等。与其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要,也可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。
1 边缘检测概述
利用计算机进行图像处理有两个目的:产生更适合人类观察和识别的图像;希望能由计算机自动识别和理解图像。无论为了哪种目的,图像处理中关键的一步就是对包含有大量各式各样景物信息的图像进行分解。分解的最终结果是被分解成一些具有某种特征的最小成分,称为图像的基元。相对于整幅图像来说,这种基元更容易被快速处理。
图像的特征是指图像场中可用作标志的属性,它可以分为图像的统计特征和图像的视觉特征两类。图像的统计特征是指一些人为定义的特征,通过变换才能得到,如图像的直方图、矩、频谱等;图像的视觉特征是指人的视觉可直接感受到的自然特征,如区域的亮度、纹理或轮廓等。利用这两类特征把图像分解成一系列有意义的目标或区域的过程称为图像的分割。
图像最基本的特征是边缘,所谓边缘是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。它存在于目标与背景、目标与目标、区域与区域、基元与基元之间,因此,它是图像分割所依赖的最重要的特征,也是纹理特征的重要信息源和形状特征的基础,而图像的纹理形状特征的提取又常常要依赖于图像分割。图像的边缘提取也是图像匹配的基础,因为它是位置的标志,对灰度的变化不敏感,可作为匹配的特征点。
图像的边缘是由灰度不连续性所反映的。经典的边缘提取方法是考察图像的每个像素在某个区域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘,这种方法称为边缘检测局部算子法。
边缘的种类可以分为两种:①阶跃性边缘,它两边的像素的灰度值有显著的不同;②屋顶状边缘,它位于灰度值从增加到减少的变化转折点。对于阶跃性边缘,二阶方向导数在边缘处呈零交叉;对于屋顶状边缘,二阶方向导数在边缘处取极值。
如果一个像素落在图像中某一个物体的边界上,那么它的领域将成为一个灰度级的变化带。对这种变化最有用的两个特征是灰度的变化率和方向,它们分别以梯度向量的幅度和方向来表示。边缘检测算子检查每个像素的领域并对灰度变化
・441・计算机应用研究2004年
率进行量化,也包括方向的确定,大多数使用基于方向导数掩模求卷积的方法。下面介绍几种常用的边缘检测算子:
(1)R obert 算子。它是2×2算子,利用局部差分算子寻找
边缘,计算沿45°方向的一阶差分。图像的梯度为两个45°方向的梯度向量和,直接计算图像差分,不包含平滑,故不能抑制噪声,对具有陡峭的低噪声图像响应最好。它是一种利用局部差分算子寻找边缘的算子:
g (x ,y )={[
f (x ,y )-f (x +1,y +1)]2+[
f (x ,y )-f (x +1,y +1)]2}1/2
其中,f (x ,y )是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的过程。
(2)S obel 算子和Prewitt 算子。为在检测边缘的同时减少
噪声的影响,Prewitt 从加大边缘检测算子的模板大小出发,由2×2扩大到3×3来计算差分算子,如图1(a )
所示。采用Prewitt 算子不仅能检测边缘点,而且能抑制噪声的影响。
图1 S obel 算子和Prewitt 算子
S obel 在Prewitt 算子的基础上,对42领域采用带权的方法
计算差分,对应的模板如图1(b )所示。该算子不仅能检测边缘点,而且能进一步抑制噪声的影响,但检测的边缘较宽。
(3)K risch 算子。它有八个卷积核,图像中每个点都用八
个卷积核进行卷积,每个卷积核对某个特定边缘方向作出最大响应,所有八个方向中的最大值作为边缘图像的输出。
(4)Laplacian 算子。它是二阶微分算子,对数字图像的每
个像素计算关于x 轴和y 轴的二阶偏导数之和 2f (x ,y )。
2f (x ,y )=f (x +1,y )+f (x 21,y )+f (x ,y +1)+f (x ,y +1)24f (x ,y )
该算子对应的模板如图2所示,它是一个与方向无关的各向同性(旋转轴对称)边缘检测算子。其零交叉点也可作为图像的阶跃型边缘点,而其极小值点可作为图像的屋顶型边缘。
Laplacian 算子极小值算法用于检测屋顶型边缘的效果不错,
但
对噪声敏感性较大;而其过零点算法若直接用于检测阶跃型边缘,则不仅过零点的门限难以选择,而且检测精度一般地较低。
图2 Laplacian 算子
(5)Canny 算子。它是一阶算子,其方法的实质是用一个准
高斯函数做平滑运算,然后以带方向的一阶微分算子定位导数最大值。它可用高斯函数的梯度来近似,在理论上很接近k 个指数函数的线性组合形成的最佳边缘算子,在实际工作应用中编程较为复杂,且运算偏慢。它是一阶传统微分中检测阶跃性边缘效果最好的算子之一,它比Prewitt 算子、S obel 算子、Lapla 2
cian 算子极小值算法的去噪能力都要强,但它也容易平滑掉一
些边缘信息。
(6)LoG (Laplacian of G aussian )算子。Marr 2Hildreth 首先使
用高斯函数对原始图像作平滑,这是由于高斯滤波器具有空间平稳性,空间位置误差小;然后采用无方向的Laplacian 算子运
算后,再用提取零交叉点的算法进行边缘检测,其精度明显提高。它的优点是过滤了噪声,缺点是可能将原有的边缘也给平滑了。高斯函数的方差直接影响到边缘检测的结果,δ较小时
用于检测细节,δ较大时用于检测轮廓。G (x ,y )=12
πδ2e r
2
2δ
2,根据卷积的结合律可得高斯—拉普拉斯算子为 2G (x ,y )=1
2
πδ4
x 2+y 2δ
222e 2x 2+y 2
2
δ2。但是Marr 和Hildreth 没有解决如何组合不同尺度滤波器输出的边缘图为单一的、正确的边缘图的具体方法。
2 边缘检测的MAT LAB 实现
211 函数edge
M AT LAB 图像处理工具包定义了edge ()函数用于检测灰
度图像的边缘。
(1)BW =edge (I ,‘method ’
),返回与I 大小一样的二进制图像BW ,其中元素1,0表示非边缘点。
method 为下列字符串之一:
①s oble 缺省值,用导数的S obel 近似值检测边缘,梯度最大点返回边缘;
②prewitt 用导数的Prewitt 近似值检测边缘,梯度最大点返回边缘;
③roberts 用导数的R oberts 近似值检测边缘,梯度最大点返回边缘;
④log 使用高斯滤波器的拉普拉斯运算对I 进行滤波,通过寻找0相交检测边缘;
⑤zerocross 使用指定的滤波器对I 滤波后,寻找0相交检测边缘。
(2)BW =edge (I ,‘method ’,thresh )中用thresh 指定灵敏度阈值,所有不强于thresh 的边缘都被忽略。(3)BW =edge (I ,‘method ’,thresh ,direction ),对于s oble 和
prewitt 方法指定方向,direction 为字符串,其中horizontal 表示水
平方向;vertical 表示垂直方向;both 表示两个方向(缺省值)。(4)BW =edge (I ,‘log ’,thresh ,sigma ),用sigma 指定标准偏差。
(5)[BW ,thresh ]=edge (…),函数的返回值实际上有多个
(“BW ”和“thresh ”
),但由于用中括号括起表示为一个矩阵,所以又可认为只有一个返回参数,这也体现了M AT LAB 引入矩阵概念的统一性和优越性。
212 实例列举
例1 利用M AT LAB 中的fspeical 函数产生拉普拉斯高斯算子。
x =-2:0.05:2;y =-2:0.05:2;sigma =0.5;y =y ′;
for i =1:(4/0.05+1)xx (i ,:)=x ;yy (:,i )=y ;end
%产生矩形网格
r =1/(23pi 3sigma^4)3((xx.^2+yy.^2)/(sigma^2)22).3...
・
541・第6期 张艳群等:MAT LAB 在图像边缘检测中的应用
exp (-(xx.^2+yy.^2)/(23sigma^2));%计算LoG 算子的值colormap (jet (16));mesh (xx ,yy ,r )
%mesh 函数用于将函数值用三维网格显示
在例1中,利用fspeical 函数产生拉普拉斯高斯算子,LoG 算子的范围为-2~2,方差为0.5,最后的效果如图3所示。由图3可以看出,它是一个带通滤波器。研究表明, 2G (x ,y )比较符合人的视觉特性,这也说明了LoG 算子较好地反映了视觉模型
。
图3 LoG 算子的可视化显示
例2 用prewitt ,canny 和log 等三种不同的算法对图像
eight.tif 进行边缘检测,输出结果如图4。
I =imread (′eight.tif ′
);BW1=edge (I ,′prewitt ′);BW2=edge (I ,′canny ′);BW3=edge (I ,′log ′
);subplot (221),imshow (I ),title (′original image ′);subplot (222),imshow (BW1),title (′prewitt ′
);subplot (223),imshow (BW2),title (′canny ′);
subplot (224),imshow (BW3),title (′laplacian ′
)
;图4 用不同算法对原图进行边缘检测的不同效果
另外,M AT LAB 工具包还自带了一个名为“edgedem o ”的演示程序,用来演示不同边缘检测算法的检测过程。在M AT LAB 集成环境中运行edgedem o ,将出现一个图形窗口界面(图5)
。
图5 edgedem o 演示界面
这是一个典型的M AT LAB 应用程序和用户交互的图形界面。M AT LAB 5.1版以后,这个界面可以很方便地用软件所带的图形用户界面生成工具(G UI T ools )生成。用户可在其中选择合适的算法,对各种图像进行边缘检测。
3 结束语
M AT LAB 具有强大的图像处理功能,提供了简便的函数调
用来实现许多经典的图像处理方法。不仅是图像的边缘检测,在变换域处理、图像增强、数学形态学处理等方面的研究中,用
M AT LAB 可大大提高实验效率,快速实现研究中的新构想。
参考文献:
[1]舒昌献,莫玉龙.基于软化形态学的边缘检测[J ].中国图像图形
学报,1999,(2):1392141.
[2]李向吉,丁润海.脉冲噪声污染图像中的数学形态学边缘检测器
[J ].中国图像图形学报,1998,(11):9032905.
[3]张延华,Y angm ing Xu 1高技术计算环绕———M AT LAB 5.2应用工具
箱现状及发展[J ].计算机应用研究,1999,16(7):326.
[4]潘峰,刘文予,朱光喜1M AT LAB 在图像处理与研究中的应用[J ].
计算机应用研究,1999,16(12):73275.
作者简介:
张艳群(19772),女,硕士研究生,主要研究方向为图像处理、W eb Service 应用;孟凡荣,女,副教授,主要研究方向为数据库、软件工程。
(上接第143页)图6给出了一个含33个点的图例,图6(c )经两次优化后面积由18×15减少到13×15
。
图6 含33个点的图例3 结束语
本文对四正则图的纵横嵌入优化问题提出了一种并行算法,不同点数的纵横嵌入图中存在的超载上圈的个数不同,因此需优化的次数也不同,每一次优化的时间复杂度都是O
(logn )。通过采用文献[3]中提出的算法生成的大量图例(每个
图含几十至几百个点不等)的研究,发现在前一次优化过程被旋转的边,都不会成为下一次优化过程中所找到的超载上圈的
组成部分,这仅仅是实验的结果,还未从理论上加以证明,但这一发现大大缩短了算法的运行时间。参考文献:
[1]刘彦佩1纵横布局论———兼谈V LSI 的布局[M]1北京:中国铁道
出版社,1997.
[2]
Y anpei Liu ,Aurora M organa ,Bruno S imeone.A Linear Alg orithm for 22bend Embeddings of Planar G raphs in the T w o 2demensional G rid [J ].Discrete Applied M athematics ,1998,81:69291.
[3]王方石,须德,四正则图的自动生成及纵横嵌入的线性算法[J ].
北京交通大学学报,2001,25:29232.
[4]Jaja J 1An Introduction to Parallel Alg orithms [M].M A :Addis on 2W esley
Publishing C om pany ,199211202230.
作者简介:
郎丛妍(19782),女,硕士研究生,主要研究方向为并行处理、视频分析;须德(19422),男,教授,博士生导师,硕士,研究方向为多媒体数据库、视频分析。
・
1・计算机应用研究2004年
