浅析基于MATLAB的图像分割方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.基于阈值的图像分割
4.基于边缘检测的图像分割及算子分析
边缘是指图像中像素灰度值或色彩等属性有突变的像 素的集合,它存在于目标与背景、目标与目标之间,包含了丰 富的图像信息。基于边缘检测[2]的图像分割正是利用边缘的 灰度变化特性,通过考察图像中各像素在某个邻域内灰度的 变化,利用边缘邻近一阶或二阶方向导数变化的规律检测目
5.各种边缘检测算子的 MATLAB 实现与比较分析
5.1 边缘检测的 MATLAB 实现 MATLAB 图形处理工具箱中提供了基于上述五种算子 的边缘检测和过零检测共六种边缘检测方法[4]。图 6 为利用 MATLAB 对 Lena 灰度图像运用各种微分算子进行边缘检 测的效果图。
图 3 Roberts 算子
终将图像分割成若干个目标区域。 区域分裂合并[2]方法利用了图像数据的金字塔或四叉
划分成若干个这样的有意义区域的过程,各区域是具有相近 树数据结构的层次概念,将图像划分成一组任意不相交的初
特性的像素的连通集合。
始区域,根据给定的均匀性检测准则进行分裂和合并这些区
图像分割是数字图像处理的重要技术之一,其基础是像 域,逐步改善区域划分的性能,直至最后将图像分成数量最
常 用 的 边 缘 检 测 算 子 还 有 Prewitt 算 子 ,Sobel 算 子 , Canny 算子,LOG 算子等,其中 LOG 算子为二阶微分算子, 其它算子为一阶微分算子。各种微分算子的模板大小和其 中的元素值不相同,但基本原理都同上面相同。下面对上述 几种算子分别作介绍,并基于各种算子对同一图像利用 MATLAB 进行边缘检测,比较分析。
点形成一个区域,在各个方向上生长区域,当新的点被合并 对位置如图 1 所示,与之对应的模板如图 2 所示,Gx、Gy 分
— ——— ———— ———— —— — —— —— —— —— —— —— 作者简介:蒋翠翠,女,湖北天门人,本科,研究方向:软件工程,通信工程。
— 68 —
别对应其中水平方向和垂直方向的模板,两个模板共同构 成一个梯度算子。
百度文库
经验交流 学术探讨
图 5 Sobel 算子
图 1 像素点的相对位置
图 2 水平垂直差分法梯度算子
(注:模板中带 * 的像素点表示当前被检测像素点的位 置,下同)
由梯度的计算式可知,在图像中灰度变化较大的区域, 对应的梯度幅度较大,变化平缓的区域,对应的梯度幅度较 小。图像中的边缘即对应梯度值较大的区域。因此,根据梯 度的幅度可以检测出图像中的边缘。
学术探讨 经验交流
浅析基于 MATLAB 的图像分割方法
蒋翠翠 李 明
(华中师范大学,湖北 武汉 430079)
[摘 要] 介绍了图像分割的基本理论和常用方法,并借助 MATLAB 对几种边缘检测算子进行了详细的分析比较,指出 了不同算子的适用情况,提出了多种分割方法整合的观点。
[关键词] 图像分割;边缘检测;算子;MATLAB
5.2 边缘检测算子的比较分析 对比各种算子的边缘检测效果,可以分析出,Roberts 算 子算法最简单,但对图像中的噪声敏感,边缘定位精度不如 其它算子高,有些强边亦不能很好地检测出来;Prewitt 算子 和 Sobel 算子相对 Roberts 算子而言,对强边的检测效果较 好,对弱边则反应较迟钝;Canny 算子由于采用双阈值分割, 能较好地检测出图像中的强边和弱边,且边缘点的连续性 也较好;LOG 算子在微分前先对图像滤波,能较好地抑制噪 声干扰,LOG 算子采用过零检测,对于图像中对弱边也较敏 感,但边缘单边响应不如 Canny 算子好,边缘连续性也较 Canny 算子差。 各种算子的特点不同,相应边缘检测也各有优劣,不可 简单地说孰好孰坏。实际应用中,可根据不同场合选择不同 的微分算子对图像进行分割。例如,在只需大致识别图像中 目标物轮廓,可忽略图像内部细节时,选用 Roberts 算子、 Prewitt 算子或 Sobel 算子,就能达要求,且计算量相对较小。 需对图像作较全面边缘检测时,Canny 算子和 LOG 算子都 是不错的选择。在提取图像轮廓时,Canny 算子就相对较有 优势。总之,根据需求合理选则图像分割方法是十分必要 的。 5.3 图像分割方法的整合 在实验中,通过整合各种边缘检测方法,可以达到更好 的图像分割效果。例如,将边缘检测与阈值分割联合使用, 对于同一算子,选取不同阈值,分割效果也明显不同。图 7 为利用 Sobel 算子在不同阈值下进行图像分割的结果。主要 MATLAB 源程序如下: I=imread('lena.jpg');
图 7 Sobel 算子下不同阈值的分割效果
各种图像分割方法有着相同的分割基理,即利用图像中 像素间的相似性和跳变性。这是多种图像分割方法能够整 合的基础。合理整合多种分割方法,使之兼具不同分割方法 的优势,可以达到更好的分割效果。
6.结束语 本文主要对基于边缘检测的图像分割的常用算子进行 了比较分析,指出了不同场合算子的适用情况。基于边缘检 测的图像分割技术具有丰富的灵活性,是图像分割中一种很 基础也很常用的方法。目前,对于各种边缘检测算子的优 化,也是图像分割中一个研究的热点。随着图像分割技术的 不断发展,各种分割方法的整合也一定会受到更多研究者的 青睐。
3.基于区域特性的图像分割
! " G[f(x,y)] =
坠f 坠x
坠f T 坠y
梯度有两个重要特性:
(1) 梯度的方向为函数 f(x,y) 最大变化率的方向;
!# $# $" (2) 梯度的幅度可表示为:G[f(i,j)]=
坠f 坠x
2+
坠f 坠y
2
1/2;
图像分割的最终目的是把图像分成若干区域,根据区 域的形成过程不同,分割方法分为两种:区域生长法和区域 分裂合并法。
区域生长法的主要过程是:从一个已知种子点开始,依 次检测其邻近点,根据检测标准,加入与其特性相似的邻近
用差分近似偏微分,G[f(i,j)]可近似表示为: G[f(i,j)]={[f(i,j)-f(i+1,j)]2+[f(i,j)-f(i,j+1)]2}1/2 进一步近似简化得,

G[f(i,j)]=| f(i,j)-f(i+1,j)|+| f(i,j)-f(i,j+1)| = Gx+Gy 这种梯度法又称为水平垂直差分法。其中各像素点的相
素间的相似性和跳变性。图像分割技术主要分为四大类:阈 少的均匀区域为止。
值分割,区域分割,边缘检测和差分法运动分割(主要针对 运动图像的分割)。下面分别对前三类分割技术作简要介 绍,并重点对边缘检测技术的几种常用算子进行比较分析, 通过 MATLAB 数字图像处理工具编程实现基于各算子的 边缘检测。
1.图像分割理论概述
后再用新的区域重复这一过程,直到没有可接受的邻近点时 生长过程终止;对于有多个目标区域的图像,可在之前已划
在实际图像研究中,常常只有图像中那些感兴趣的目 分的区域外再选取一种子点,按同样过程生成新的区域;最
标才能为我们提供高效、有用的信息。这些目标一般对应图 像中特定的、具有独特性质的区域。图像分割[1]就是将图像
多个灰度区间,以确定有意义的区域或分割物体的边界。阈 清晰。实际数字图像图像处理中,常用差分近似微分,通过小
值分割常用于图像的二值化处理,即选择一个合适的阈值, 区域模板卷积近似实现微分运算,这是利用各种微分算子进
通过判断图像中的每一个像素点的特征属性是否满足阈值 行边缘检测的基本原理。下面以梯度算子为例对边缘检测原
图 4 Prewitt 算子
图 6 各种算子边缘检测效果
主要程序代码为: I=imread('lena.jpg'); G=rgb2gray(I); BW=im2bw(G); %边缘检测 BW1=edge(G,'roberts');%roberts 算子 BW2=edge(G,'prewitt'’);%prewitt 算子 BW3=edge(G,'sobel');%sobel 算子 BW4=edge(G,'canny');%canny 算子
— 69 —
学术探讨 经验交流
BW5=edge(G,'log');%log 算子 %显示边缘检测结果 figure subplot(1,2,1),imshow(G);title(' 灰度图像 '); subplot(1,2,1),imshow(BW1);title('roberts 边缘检测 '); figure subplot(1,2,1),imshow(BW2);title('prewitt 边缘检测 '); subplot(1,2,2),imshow(BW3);title('sobel 边缘检测 '); figure subplot(1,2,1),imshow(BW4);title('canny 边缘检测 '); subplot(1,2,2),imshow(BW5);title('LOG 边缘检测 ');
4.1 Roberts 算子 Roberts 算子采用交叉差分的方法近似计算梯度,因此 也称为 Roberts 交叉算子。它对应的 2*2 模板如图 3 所示:
4.3 Canny 算子 Canny 的研究思想主要是把检测像素点转换为检测单 位函数极大值,他指出一个好的边缘检测算子应有三个特 性:检测性噪比高,边缘定位精度高,单边响应效果好。 Canny 算子基于 Laplace 滤波,采用两个阈值,对强边和弱边 进行检测。从实验结果可以看出,相对其它边缘检测算子, Canny 算子对像素变化更加敏感,能更好地捕捉图像中的微 弱边缘。 4.4 LOG 算子 LOG 算子,即拉普拉斯—高斯算子。LOG 算子先通过高 斯滤波器对图像进行平滑滤波,再对图像进行拉普拉斯运 算,最后通过检测过零点来确定图像边缘。
阈值分割[2]是一种常用的图像分割方法,它主要利用图 标物边缘,从而实现图像分割。边缘检测可借助空域微分算
像中要提取的目标物与其背景在灰度特性上的差异,通过 子通过卷积来实现。对图像进行微分运算,可求得灰度的变
设置合适的灰度门限(阈值),将图像的灰度划分为两个或 化率,加强图像中高频分量的作用,从而使图像中的边缘更
参考文献:
[1] 章毓晋.图像工程[M].北京:清华大学出版社,2006. [2] 何东键等.数字图像处理[M].西安:电子科技大学出版社, 2003. [3] 刘翠艳.基于 MATLAB 的图像处理方法及分析[J].电脑与电 信,2009(4):84-86. [4] Rafael C.等.数字图像处理:MATLAB 版[M].北京:电子工 业出版社,2005.
其梯度计算式可近似表示为: G[f(i,j)]=| f(i,j)-f(i+1,j+1)|+| f(i+1,j)-f(i,j+1)| Roberts 算子边缘定位准确,但在加强边缘的同时也使 噪声得到增强,因而对噪声敏感。 4.2 Prewitt 算子和 Sobel 算子 Prewitt 算子和 Sobel 算子均由两个 3*3 的模板组成,如 图 4 和 5 所示。与 Roberts 算子不同,这两种算子采用被检 测点两侧(行或列)像素的差分来近似微分,引入了平均因 素,对图像中的随机噪声有一定的抑制作用。
的要求来确定图像中该像素点是属于目标区域还是属于背 理进行具体分析。
景区域,从而将图像转化成二值图像。 在用阈值法对图像进行分割时,阈值的取值不同,对于
对于图像函数 f(x,y),它在像素点(x,y)处的梯度是一 个矢量,定义为:
处理结果的影响很大。阈值过大或过小,都会导致分割的误 差增大。根据阈值选取的方法不同,阈值分割可分为直方图 阈值分割,类间方差阈值分割,二维最大熵阈值分割和模糊 阈值分割。
G=rgb2gray(I); BW1=edge(G,'sobel',0.04);% 阈值 = 0.04 BW2=edge(G,'sobel',0.08);% 阈值 =0.08 BW3=edge(G,'sobel',0.12);% 阈值 =0.12 figure subplot(1,2,1),imshow(G);title(' 原始图像 '); subplot(1,2,2),imshow(BW1);title('Sobel 算子 thresh=0.04'); figure subplot(1,2,1),imshow(BW2);title('Sobel 算子 thresh=0.08'); subplot(1,2,2),imshow(BW3);title('Sobel 算子 thresh=0.12');
相关文档
最新文档