MATLAB 在图像边缘检测中的应用


收稿日期: 2003- 07- 01; 修返日期: 2003- 08- 15 MATLAB 在 图 像 边 缘 检 测 中 的 应 用 张艳群, 孟凡荣 ( 中国矿 业大 学 计算 机学 院, 江 苏 徐州 221008) 摘 要: 简 要介 绍了 边缘 检测 技术 , 结 合实 例详 细分 析了 MATLAB 在图 像边 缘检 测中 的具 体应用 方法 。 关键 词: MATLAB; 图 像处 理; 边缘 检测 中图 法分 类号 : TP391. 41 文 献标 识码 : A 文 章编 号: 1001- 3695( 2004) 06- 0144- 03 Application of MATLAB in Image Edge Detection ZHANG Yan- qun, MENG Fan- rong ( College of Computer Science & Technology, China University of Mining & Technology, Xuzhou Jiangsu 221008, China) Abstract: This paper briefly introduces the technology of edge detection. Combined with practical examples, the specific appli- cation of MATLAB in edge detection is analyzed in detail. Key words: MATLAB; Image Processing; Edge Detection MATLAB 自 1984 年 由美 国 MathWorks 公 司 推 向 市 场 以 来, 历经十几年的发展, 现已成 为国际 公认的 最优秀 的科技 应 用软件。MATLAB 既是一种 直观、高效 的计算 机语 言, 同时 又 是一个科学计算平台, 它 为数据 分析和 数据可 视化、算法和 应 用程序开发提供了最核心 的数学 和高级 图形工 具。根据它 提 供的 500 多个数学和工程函数, 工程技术人员和科学工作 者可 以在它的集成环境中交互或编程以完成各自的计算。 MATLAB 软件具有很强 的开放 性和 适应 性。在保 持内 核 不变的情况下, MATLAB 可以针对不同的应用学科推出相应的 工具箱( Toolbox) , 目前已经推出了图像处 理工具箱、信号处 理 工具箱、小波工具箱、神经网络 工具箱 以及通 信工具 箱等多 个 学科的专用工具箱, 极大地方便了不同学科的研究工作。 MATLAB 的图像处理工 具包是 由一系 列支持 图像 处理 操 作的函数组成的, 所支持的图像处理操作有: 几何操作、区域操 作和块操作; 线性 滤波 和滤波 器设 计; 变换 ( DCT 变换) ; 图 像 分析和增强; 二值图 像操作 等。 图像处 理工具 包的函 数, 按 功 能可以分为以下几类: 图像显示; 图像文件输入与输出; 几何操 作; 像素值统计; 图像 分析与增强; 图像滤 波; 线 性二维滤波 器 设计; 图像变换; 领域 和块操作; 二值图像 操作; 颜色映射和 颜 色空间转换; 图像类型和类型转换; 工具包参数获取和设置等。 与其他工具包一样, 用户 还可以 根据需 要书写 自己的 函数, 以 满足特定的需要, 也可以将这个工具包和信号处理工具包或小 波工具包等其他工具包联合起来使用。 1 边缘检测概述 利用计算机进行图像处理有两个目的: 产生更适合人类观 察和识别的图像; 希望能由计算机自动识别和理解图像。无论 为了哪种目的, 图像处理中关键的一步就是对包含有大量各式 各样景物信息的图像进行 分解。分解 的最终 结果是 被分解 成 一些具有某种特征的最小成分, 称为图像的基元。相对于整幅 图像来说, 这种基元更容易被快速处理。 图像的特征是指图像场中可用作标志的属性, 它可以分为 图像的统计特征和图像的 视觉特 征两类。图 像的统 计特征 是 指一些人为定义的特征, 通过变换才能得到, 如图像的直方图、 矩、频谱等; 图像的视觉特征是 指人的 视觉可 直接感 受到的 自 然特征, 如区域的亮度、纹 理或轮 廓等。利用这 两类特 征把 图 像分解成一系列有意义的目标或区域的过程称为图像的分割。 图像最基本的特征是边缘, 所谓边缘是指其周围像素灰度 有阶跃变化或屋顶变化的 那些像 素的集 合。 它存在 于目标 与 背景、目标与目标、区域与区域、基元与基元之间, 因此, 它是 图 像分割所依赖的最重要的特征, 也是纹理特征的重要信息源和 形状特征的基础, 而图像的纹理形状特征的提取又常常要依赖 于图像分割。图像的边缘提取也是图像匹配的基础, 因为它是 位置的标志, 对灰度的变化不敏感, 可作为匹配的特征点。 图像的边缘是由灰度不 连续性 所反映 的。经典的 边缘 提 取方法是考察图像的每个像素在某个区域内灰度的变化, 利用 边缘邻近一阶或二阶方向导数变化规律, 用简单的方法检测边 缘, 这种方法称为边缘检测局部算子法。 边缘的种类可以分为两 种: ① 阶跃性 边缘, 它两边 的像 素 的灰度值有显著的不同; ② 屋顶状 边缘, 它位 于灰度 值从增 加 到减少的变化转折点。对于阶跃性边缘, 二阶方向导数在边缘 处呈零交叉; 对于屋顶状边缘, 二阶方向导数在边缘处取极值。 如果一个像素落在图像中某一个物体的边界上, 那么它的 领域将成为一个灰度级的 变化带。对 这种变 化最有 用的两 个 特征是灰度的变化率和方向, 它们分别以梯度向量的幅度和方 向来表示。边缘检测算子检查 每个像 素的领 域并对 灰度变 化 ·441· 计算机应用研究 2004 年 率进行量化, 也包括方向 的确定, 大多数使用基于方向导数掩 模求卷积的方法。下面介绍几种常用的边缘检测算子: ( 1) Robert 算子。它是 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) Sobel 算子和 Prewitt 算子。为在 检测边缘的 同时减 少 噪声的影响, Prewitt 从加大边缘检测算子的模板大小出发, 由 2 × 2 扩大到 3 × 3 来计算差分算子, 如图 1( a) 所示。采用 Pre- witt 算子不仅能检测边缘点, 而且能抑制噪声的影响。 图 1 Sobel 算子 和 Prewitt 算 子 Sobel 在 Prewitt 算子的基础上, 对 4-领域 采用带 权的方 法 计算差分, 对应的模 板如图 1( b) 所 示。该 算子不 仅能 检测 边 缘点, 而且能进一步抑制噪声的影响, 但检测的边缘较宽。 ( 3) Krisch 算子。它有八个卷 积核, 图像 中每 个点 都用 八 个卷积核进行卷积, 每个卷积核对某个特定边缘方向作出最大 响应, 所有八个方向中的最大值作为边缘图像的输出。 ( 4) Laplacian 算子。它是二阶微分 算子, 对数字 图像的 每 个像素计算关于 x 轴和 y 轴的二阶偏导数之和�2 f( x, y) 。 �2 f( x,y) =f( x+1,y) +f( x-1,y) +f( x,y+1) +f(x,y+1) -4f(x,y) 该算子对应的模板如图 2 所示, 它是一个与方向无关的各 向同性( 旋转轴对称) 边缘检测算 子。其 零交叉点也 可作为 图 像的阶跃型边缘点, 而其极小值点可作为图像的屋顶型边缘。 Laplacian 算子极小值算法用于检测屋顶型边缘的效果不错, 但对噪声敏感性较大; 而其过零点算法若直接用于检测阶跃型 边缘, 则不仅过零点的门 限难以 选择, 而且检 测精度 一般地 较 低。 0 1 0 1 - 4 1 01 1 0 图 2 Laplacian 算子 ( 5) Canny 算子。它 是一 阶算子, 其 方法 的实 质是 用一 个 准高斯函数做平滑运算, 然后以带方向的一阶微分算子定位导 数最大值。它可用高斯函数的梯度来近 似, 在 理论上很接 近 k 个指数函数的线性组合形成的最佳边缘算子, 在实际工作应用 中编程较为复杂, 且运算偏慢。它是一阶传统微分中检测阶跃 性边 缘 效 果 最好 的 算 子 之 一, 它 比 Prewitt 算 子、Sobel 算 子、 Laplacian 算子极小 值算 法 的去 噪能 力 都要 强, 但 它也 容 易 平 滑掉一些边缘信息。 ( 6) LoG( Laplacian of Gaussian) 算子。Marr- Hildreth 首 先 使用高斯函数对原始图像作平滑, 这是由于高斯滤波器具有空 间平稳性, 空间位置误差小; 然后采 用无方向的 Laplacian 算 子 运算后, 再用提取零交叉点 的算法 进行边 缘检测, 其 精度明 显 提高。它的优点是过滤了噪声, 缺点是可能将原有的边缘也给 平滑了。高斯函数的方差直接影响到边缘检测的结果, δ较小 时用于检测细节, δ较大时用于检测轮廓。G( x, y) = 1 2πδ2 e r 2 2δ2 , 根据卷积的结合律可得高斯—拉普拉斯算子为�2 G( x, y) = 1 2πδ4 x2 + y2 δ2 - 2 e- x2 + y2 2δ2 。 但 是 Marr 和 Hildreth 没 有 解 决 如 何 组合不同尺度滤波器输出的边缘图为单一的、正确的边缘图的 具体方法。 2 边缘检测的MATLAB 实现 2. 1 函数 e dge MATLAB 图像处理工具包定义了 edge( ) 函数用 于检测 灰 度图像的边缘。 ( 1) BW = edge( I, ‘method’), 返回与 I 大小 一样的二进 制 图像 BW, 其中元素 1 表 示的是 边缘上 的点, 0 表示 非边 缘点。 method 为下列字符串之一: ①soble 缺 省值, 用 导数 的 Sobel 近似 值检 测边 缘, 梯 度 最大点返回边缘; ②prewitt 用导数的 Prewitt 近似值检测边缘, 梯度最大 点 返回边缘; ③roberts 用导 数的 Roberts 近似 值 检 测边 缘, 梯 度 最 大 点返回边缘; ④log 使用高斯滤波器的拉普拉斯运算对 I 进行滤波, 通 过寻找 0 相交检测边缘; ⑤zerocross 使用 指定的 滤波器 对 I 滤波后, 寻找 0 相 交 检测边缘。 ( 2) BW = edge ( I, ‘method’, thresh) 中 用 thresh 指定 灵 敏 度阈值, 所有不强于 thresh 的边缘都被忽略。 ( 3) BW = edge ( I, ‘method ’, thresh, direction) , 对 于 soble 和 prewitt 方法指定方向, direction 为字 符串, 其中 horizontal 表 示水平方向; vertical 表 示垂 直方 向; both 表 示两 个方 向 ( 缺 省 值) 。 ( 4) BW = edge( I, ‘log’, thresh, sigma) , 用 sigma 指定标 准 偏差。 ( 5 ) [ BW, thresh ] = edge ( ⋯ ), 函数的返回值实际上有多个 ( “BW”和“thresh”), 但由于用中括号括起表示为一 个矩阵, 所 以又可认为只有一个返回参数, 这 也体 现了 MATLAB 引 入 矩 阵概念的统一性和优越性。 2. 2 实例列举 例 1 利用 MATLAB 中的 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; ·541·第 6 期 张艳群等: MATLAB 在图像边缘检测中的应用 -1 -1 -1 0 0 0 1 1 1 -1 0 1 -1 0 1 -1 0 1 -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 -1 0 1 (a)Prewitt 算子 (b)Sobel 算子 end % 产生矩 形网 格 r = 1 /( 2* pi* sigma^4) * ( ( xx. ^2+ yy. ^2) /( sigma^2) - 2) . * . . . exp( - ( xx. ^2+ yy. ^2) /( 2 * sigma^2) ) ; % 计算 LoG 算子的 值 colormap( jet( 16) ) ; mesh( xx, yy, r) % mesh 函数用于将函数值用三维网格显示 在例 1 中, 利用 fspeical 函数产生拉普拉斯高斯算子, LoG 算子的 范 围为 - 2 ~2, 方 差为 0. 5, 最 后的 效 果如 图 3 所示。 由图 3 可以看出, 它是一个带通滤波器。研究表明, �2 G( 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 用不同算法对原图进行边缘检测的不同效果 另外, MATLAB 工具包还自带了一个名为“edgedemo”的演 示程序, 用来演示不同边缘检测算法的检测过程。在 MATLAB 集成环境中运行 edgedemo, 将出现一个图形窗口界面( 图 5) 。 图 5 edgedemo 演 示界 面 这是一个典型的 MATLAB 应用程序和用户交互的图形界 面。MATLAB 5. 1 版以后, 这个界面可以很方便地用软件所带 的图形用户界面生成工具( GUI Tools) 生成。用户可 在其中 选 择合适的算法, 对各种图像进行边缘检测。 3 结束语 MATLAB 具有强大的图像处理功能, 提供了简便的函数调 用来实现许多经典的图像处理方法。不仅是图像的边缘检测, 在变换域处理、图像增强、数学形态学处理等方面的研究中, 用 MATLAB 可大大提高实验效率, 快速实现研究中的新构想。 参考文献: [ 1] 舒昌献 , 莫玉龙 . 基于软化形态学的边缘检测 [J]. 中国 图 像图 形 学报, 1999, ( 2) : 139 -141. [ 2] 李向吉 , 丁润海 . 脉冲噪声污染图像中的数学形态学边缘检测器 [J]. 中 国图 像图形 学报 , 1998, ( 11) : 903- 905. [ 3 ] 张延华 , Yangming Xu. 高技 术计 算环 绕——— MATLAB 5. 2 应用 工 具箱现 状及发 展[J]. 计算 机应 用研究 , 1999 , 16( 7) : 3- 6. [ 4] 潘峰, 刘 文 予, 朱 光 喜 . MATLAB 在图像处理与研究中的应用 [J]. 计 算机 应用研 究, 1999, 16( 12) : 73- 75. 作者简介: 张 艳群 ( 1977 - ) , 女, 硕士 研究生 , 主要研究方向为图像处理、Web Serv- ice 应 用; 孟凡荣 , 女 , 副教授 , 主要研究方向为数据库、软件工程 。 ( 上 接第 143 页) 图 6 给出 了一个 含 33 个 点 的 图例 , 图 6( c ) 经 两 次 优化 后 面 积 由 18 ×15 减少 到 13 ×15。 图 6 含 33 个点的 图例 3 结束语 本文对四正则图的纵横嵌入优化问题提出了一种并行算 法, 不同点数的纵横嵌入图中存在的超载上圈的个数不同, 因 此需 优 化 的 次 数 也 不 同, 每一次优化的时间复杂度都是 O ( logn) 。通过采用文献[ 3] 中提出的算法生成的大量图例 ( 每 个图含几十至几百个点不等) 的 研究, 发现在 前一次 优化过 程 被旋转的边, 都不会成为下一次优化过程中所找到的超载上圈 的组成部分, 这仅仅是实验的结果, 还未从理论上加以证明, 但 这一发现大大缩短了算法的运行时间。 参考文献: [ 1] 刘彦佩 . 纵 横布局 论———兼谈 VLSI 的布局 [M]. 北京: 中国 铁道 出版社 , 1997 . [ 2] anpei Liu, Aurora Morgana, Bruno Simeone. A Linear Algorithm for 2- bend Embeddings of Planar Graphs in the Two- demensional Grid [ J] . Discrete Applied Mathematics, 1998, 81: 69 - 91. [ 3] 王方石 , 须德, 四正则图的自动生成及纵横嵌入的线性算法 [J]. 北京交 通大 学学报 , 2001 , 25: 29- 32. [ 4] aja J. An Introduction to Parallel Algorithms[ M] . MA: Addison-Wes- ley Publishing Company, 1992. 120- 230. 作者简介: 郎丛妍( 1978- ) , 女, 硕士研究生, 主要研究方向为并行处理、视频分析; 须德 ( 1942- ) , 男, 教授, 博士生导师, 硕士, 研究方向为多媒体数据库、视频分析。 ·641· 计算机应用研究 2004 年 2 0 -2 -4 -6 2 1 0 -1 -2-2 -1 0 1 2 OriginalImage Prewitt Canny Laplacian 32 30 28 2611 31 27 29 25 24 22 8 20 21 23 17 1519 131618 141210 6 9 7 5 3124 0 (a) 原纵横嵌入图 8 20 21 22 24 2325 2728 26 11 2930 151731 32 19 181613 141210 96 7 5 4213 0 (b) 第一次优化 11 26 24 22 208 21 23 28 30 32 312927 25 17 1519 181613 141210 6 9 7 5 4213 0 (c) 第二次优化
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

anyeweiyangy

贡献于2011-10-21

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf