您好,欢迎来到刀刀网。
搜索
您的当前位置:首页阈值分割

阈值分割

来源:刀刀网
课 程 设 计 任 务 书

1.设计目的: 本设计的课题任务是掌握图像阈值分割算法研究,实现对图像的分割。了解图像分割的应用及基本方法,理解阈值化图像分割原理,理解三类典型的阈值化分割算法,并利用之进行图像分割,给出实验结果并做出分析。 2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等): (1) 查阅相关资料; (2) 理解基于各像素值的阈值分割算法,基于区域性质的阈值分割算法, 基于坐标位置的阈值分割算法;软件编程实现利用基于各像素值的阈值分割算法进行图像分割,要求完成如下内容:包括极小值点阈值、最优阈值、迭代阈值,基于最大方差的阈值,基于最大熵的阈值等方法,利用之实现图像分割,这里的图像可以针对核磁共振图像(MRI); (3)用MATLAB实现,并观察各算法之间的区别。 3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:

课 程 设 计 任 务 书

4.主要参考文献: 郝文化 MATLAB 图形图象处理应用教程 中国水利水电出版社 2003 霍宏涛 林小竹 数字图象处理 北京理工大学出版社 2002 张兆林 MATLAB 6.x图象处理 北京:清华大学出版社 2002 阮秋琦 数字图象处理 北京:电子工业出版社 2001 徐飞 MATLAB应用图象处理 西安:西安电子科技大学出版社 2002 崔屹,数字图像处理技术与应用,电子工业出版社 1997 付忠良,图像阈值选取方法,计算机应用 2000 吴冰、秦志远,自动确定图像二值化最佳阈值的新方法,绘测学院学报 2000 付忠良,基于图像差距度量的阈值选取方法,计算机研究与发展 2001 付忠良,一些新的图像阈值选取方法,计算机应用 2001 5.设计成果形式及要求: (1)提供编写的matlab程序; (2)提供课程设计说明书一份。 6.工作计划及进度: 2008年12 月15 日 ~ 12 月18 日:查资料 2008年 12 月19 日 ~ 12月 22 日:在指导教师指导下设计方案,开始编写程序 2008年 12 月23 日 ~ 12月26 日:上机调试程序,指导教师辅导,完成课程设计说明书 2008年 12 月28 日 答辩 系主任审查意见: 签字: 年 月 日

目 录

摘要……………………………………………………………………………………1 1 阈值分割……………………………………………………………………………1 1.1 图像分割的概述………………………………………………………………1 1.2 阈值分割的基本原理…………………………………………………………2 1.3 阈值分割方法的分类…………………………………………………………3 1.3.1 基于点的全局阈值方法…………………………………………………3 1.3.2 基于区域的全局阈值方法………………………………………………3 1.3.3 局部阈值法和多阈值法…………………………………………………3 2 基于点的全局阈值分割方法………………………………………………………4 2.1基于最小值点阈值的方法实现图像切割…………………………………… 4 2.2基于最优阈值的方法实现图像切割………………………………………… 4 2.3基于迭代的方法实现图像切割……………………………………………… 5 2.4最大类间方差的方法实现图像切割………………………………………… 6 2.5基于最大熵的方法实现图像切割…………………………………………… 7 2.6其它方法实现阈值分割……………………………………………………… 7 3 图像切割的实现……………………………………………………………………8 3.1 图像切割实现代码…………………………………………………………… 8 3.2 图像切割图形显示……………………………………………………………13 4总结……………………………………………………………………………… 14

课 程 设 计 说 明 书

摘 要

图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.阈值法是一种传统的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术.已被应用于很多的领域。本文是在阅读大量国内外相关文献的基础上,主要针对基于各像素值的阈值分割算法进行图像分割的技术做处理。

关键词:图像分割 阈值选取 全局阈值 局部阈值 直方图

1 阈值分割

1.1 图像分割的概述

在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些部分称为目标或前景(其他部分称为背景),他们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将他们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成格局特性的区域并提取出感兴趣目标的技术和过程。这里特性可以是象素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区域。现有的图像分割算法有:阈值分割、边缘检测和区域提取法。本文着重研究基于阈值法的图像分割技术。

所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准。

阈值法是一种传统的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术.已被应用于很多的领域,例如,在红外技术应用中,红外无损检测中红外热图像的分割,红外成像跟踪系统中目标的分割;在遥感应用中,合成孔径雷达图像中目标的分割等;在医学应用中,血液细胞图像的分割,磁共振图像的分割;在农业工程应用中,水果品质无损检测过程中水果图像与背景的分割。在工业生产中,机器视觉运用于产品质量检测等等。在这些应用中,分割是对图像进一步分析、识别的前提,分割的准确性将直接影响后续任务的有效性,其中阈值的选取是图像阈值分割方法中的关键技术。

1.2 阈值分割的基本原理

图像阈值化分割是一种最常用,同时也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

阈值分割法是一种基于区域的图像分割技术,其基本原理是:通过设定不同的特征阈值,把图像像素点分为若干类.常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征.设原始图像为f(x,y),按照一定的准则在f(x,y)中找到特征值T,将图像分割为两个部分,分割后的图像为 :

g(x,y)b0b1f(x,y)tf(x,y)t

若取 : b0=0(黑),b1=1(白),即为我们通常所说的图像二值化。 一般意义下,阈值运算可以看作是对图像中某点的灰度、该点的某种局部特性以及该点在图像中的位置的一种函数,这种阈值函数可记作: T(x,y,n(x,y),f(x,y))

式中,f(x,y)是点(x,y)的灰度值;n(x,y)是点(x,y)的局部邻域特性.根据

对T的不同约束,可以得到3种不同类型的阈值,即

(1)点相关的全局阈值T=T(f(x,y)):只与点的灰度值有关

(2)区域相关的全局阈值T=T(n(x,y),f(x,y)):与点的灰度值和该点的局部邻域特征有关

(3)局部阈值或动态阈值T=T(x,y,n(x,y),f(x,y)):与点的位置、该点的灰度值和该点邻域特征有关

因此本文分三大类对阈值选取技术进行综述: 1) 基于点的全局阈值方法; 2) 基于区域的全局阈值方法 3) 局部阈值方法和多阈值方法 1.3 阈值分割方法的分类

全局阈值法指利用全局信息对整幅图像求出最优分割阈值,可以是单阈值,也可以是多阈值;局部阈值法是把原始的整幅图像分为几个小的子图像,再对每个子图像应用全局阈值法分别求出最优分割阈值。其中全局阈值法又可分为基于点的阈值法和基于区域的阈值法。阈值分割法的结果很大程度上依赖于阈值的选择,因此该方法的关键是如何选择合适的阈值。由于局部阈值法中仍要用到全局阈值法,因此本文主要对全局阈值法中基于点的阈值法和基于区域的阈值法分别进行了研究。根据阈值法的原理可以将阈值选取技术分为三大类 1.3.1 基于点的全局阈值方法

基于点的全局阈值算法与其他几大类方法相比,算法时间复杂度较低,易于实现,适合应用于在线实时图像处理系统。 1.3.2 基于区域的全局阈值方法

对一幅图像而言,不同的区域,比如说目标区域或背景区域,同一区域内的象素,在位置和灰度级上同时具有较强的一致性和相关性。 1.3.3 局部阈值法和多阈值法

局部阈值(动态阈值) 当图像中有如下一些情况:有阴影,照度不均匀,各处的对比度不同,突发噪声,背景灰度变化等,如果只用一个固定的全局阈值对整幅图像进行分割,则由于不能兼顾图像各处的情况而使分割效果受到影响。有一种解决办法就是用与象素位置相关的一组阈值(即阈值使坐标的函数)来对图

像各部分分别进行分割。这种与坐标相关的阈值也叫动态阈值,此方法也叫变化阈值法,或自适应阈值法。这类算法的时间复杂性和空间复杂性比较大,但是抗噪能力强,对一些用全局阈值不易分割的图像有较好的效果。

多阈值法很显然,如果图像中含有占据不同灰度级区域的几个目标,则需要使用多个阈值才能将他们分开。其实多域值分割,可以看作单阈值分割的推广。

2 基于点的全局阈值分割方法

2.1基于最小值点阈值的方法实现图像切割

如果将直方图的包络看做1条曲线,刚选取直方图的谷可借助求曲线极小值的方法。设用H(z)代表直方图,那么极小值点应满足

h(z)z20和h(z)z20

和这些极小值点对应的灰度值就可用作分割阈值。 2.2 基于最优阈值的方法实现图像切割

有时目标和背景的灰度值有部分交错,用1个全局阈值并不能将它们绝对分开。这时常希望能减小误分割的概率,而选取最优阈值是一种常用的方法。设一幅图像仅包含2类主要的灰度值区域(目标和背景),它的直方图可看成灰度值概率密度函数p(z)的一个近似。这个密度函数实际上是目标和背景的2个单峰密度函数之和。如果已知密度函数的形式,那么就有可能选取1个最优阈值把图像分成2类区域而使误差最小。

设有这样1幅混有加性高斯噪声的图像,它的混合概率密度是

p(z)其中

P1p1(z)和

P2p2(z)P12exp1(z2121)2P221exp2(z2222)2

12分别是背景和目标区域的平均灰度值,和

2分别是关于均值

的均方差,P1和P2分别是背景和目标区域灰度值的行验概率。根据概率定义有

P1+P2=1,所以混合概率密度中有5个未知的参数。如果能求出这些参数就可以

确定混合概率密度。

假设

1<

2,需定义1个阈值T使得灰度值小于T的像素分割为背景而使得

灰度值大于T的像素分割为目标。这时错误地将1个目标像素划分为背景的概率和1个背景像素错误地划分为目标的概率分别是

TE1(T)E2(T)Tp2(z)dzp1(z)dz

总的误差概率是

E(T)P2E1(T)P1E2(T)

为求得使该误差最小的阈值可将E(T)对T求导并令导数为零,这样得到:

P1p1(T)P2p2(T)

将这个结果用于高斯密度,可得到解一元二次方程的根判别式的系数

ABC221222122212221

22122ni12122Xi2ln(p1)1p22该二次在一般情况下有2个解。如果2个区域的方差相等,刚只有1个最优阈值

2Toptimal122ln(12p2) p1 2.3 基于迭代的方法实现图像切割 迭代法是基于逼近的思想,其步骤如下:

(1)求出图象的最大灰度值和最小灰度值,分别记为Zmax和Zmin,令初始阈值T0=(Zmax+Zmin)/2;

(2)根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值ZO和ZB;

(3)求出新阈值TK+1=(ZO+ZB)/2;

(4)若TK=TK+1,则所得即为阈值;否则转2,迭代计算。

迭代所得的阈值分割的图象效果良好。基于迭代的阈值能区分出图像的前景和背景的主要区域所在,但在图像的细微处还没有很好的区分度。

但令人惊讶的是,对某些特定图象,微小数据的变化却会引起分割效果的巨大改变,两者的数据只是稍有变化,但分割效果却反差极大

经试验比较,对于直方图双峰明显,谷底较深的图像,迭代方法可以较快地获得满意结果。但是对于直方图双峰不明显,或图像目标和背景比例差异悬殊,迭代法所选取的阈值不如最大类间方差法。 2.4最大类间方差的方法实现图像切割 由Otsu于1978年提出的最大类间方差法以其计算简单、稳定有效,一直广为使用。从模式识别的角度看,最佳阈值应当产生最佳的目标类与背景类的分离性能,此性能我们用类别方差来表征,为此引入类内方差 、类间方差 和总体方差。最大类间方差法计算简单、稳定有效,一直广为使用,是一种受到普遍欢迎的阈值选取方法。其基本思路是将直方图在某一阈值处分割成两组,当被分成的两组的方差为最大时,得到阈值。因为方差是灰度分布均匀性的一种量度,方差值越大,说明构成图像的两部分差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小。 图像的灰度级范围是0,1,2,…,L-1,设灰度级i的象素点个数为mi,l1图像的象素点的总数为M0mi,则灰度级i的出现概率pi定义为pimi,ML10pi1在Ostu方法中,阈值t把图像的象素分为C0=(0,1,…,t)和C1=(t+1,t+2,…,L-1)两类(分别代表门标与背景)。 C0和C1类出现概率及均值分别为:tw0 = i0L1piPiw(t)1w(t)(t)w(t)Tw1it1t0i0L11itipiw0 ipi1w1ti0(t)(t)1w(t)L1T其中:(t)ipi,(t)it1ipi C0和C1类的方差:20t(t)i0L1(i(i2m2n2T0)2pi)2piw0w0(2m2002n2m2nw0121(t)it1w1(t)(t)(t)w1T21类间方差为:类内方差为:总体方差为:)2w1(1T)2引入关于t的等价判决准则函数:(t)最优阈值t*通过等价判决准则的最大值得到:t*argmax(t)t[0,L1] 即阈值T将图像分成目标,背景两部分,使得两类总方差取得最大值的t,即为最佳分割阈值 2.5基于最大熵的方法实现图像切割 八十年代以来,许多学者将Shannon信息熵的概念应用于图像阈值化,其基本思想都是利用图像的灰度分布密度函数定义图像的信息熵,根据假设的不同或视角的不同提出不同的熵准则,最后通过优化该准则得到阈值。Pun[16]通过使后验熵的上限最大来确定阈值。此方法又称为KSW熵方法。 2.6 其它方法实现阈值分割

对于基于点的全局阈值选取方法,除上述主要几种之外还许多,但大多都是以上述基本方法为基础,做出的改进方法或者对算法的优化,如使用递推方法以降低算法复杂性。例如一种使目标和背景差距最大的阈值求取方法,类似于最大类间方差阈值法。是它的一种简化算法。又如1984年Dunn等人[23]提出了均匀化误差阈值选取方法,这种方法实质上是要使将背景点误分为目标点的概率等于将目标点误分为背景点的概率。类似于最小误差阈值法。近年来有一些新的研究手段被引入到阈值选取中。比如人工智能,描述了如何用人工智能的方法,寻找直方图的谷底点,作为全局阈值分割。其它如神经网络,数学形态学,小波分析与变换等等。

总的来说,基于点的全局阈值算法,与其它几大类方法相比,算法时间复杂度较低,易于实现,适合应用于在线实时图像处理系统。

基于区域的全局阈值选取方法对一幅图像而言,不同的区域,比如说目标区域或背景区域,同一区域内的象素,在位置和灰度级上同时具有较强的一致性和相关性。而在上述基于点的全局阈值选取方法中,有一个共同的弊病,那就是它们实际上只考虑了直方图提供的灰度级信息,而忽略了图像的空间位置细节,其结果就是它们对于最佳阈值并不是反映在直方图的谷点的情况会束手无策,不幸我们通常遇到的很多图像恰恰是这种情况。另一方面,完全不同的两幅图片却可以有相同的直方图,所以即使对于峰谷明显的情况,这些方法也不能保证你得到合理的阈值。于是,人们又提出了很多基于空间信息的阈值化方法。可以说,局部区域的全局阈值选取方法,是基于点的方法,再加上考虑点领域内象素相关性质组合而成,所以某些方法常称为“二维xxx方法”。由于考虑了象素领域的相关性质,因此对噪声有一定抑止作用。

3 图像切割的实现

3.1 图像切割实现代码

clc

clear all;

%%%%%%%%%%%%极小值图像切割%%%%%%%%%%%%%%%%%%%%%%%%%

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\课程设计题目\\2.bmp'); figure(1);

subplot(121),imhist(I); % 观察灰度直方图, 灰度80处有谷,确定阈值T=80 title('直方图');

subplot(1,2,2),imshow(I); title('原图')

I1=im2bw(I,80/255); % im2bw函数需要将灰度值转换到[0,1]范围内 figure(2)

subplot(3,2,1),imshow(I1); title('极小值点阈值切割');

%%%%%%%%%%%%%%%%%迭代法图像切割%%%%%%%%%%%%%%%%%%%%%%%%

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\课程设计题目\\2.bmp');

[x,y]=size(I); a=imhist(I); I=double(I); max=1; for i=2:x

if a(max)if a(min)>a(i) min=i; end end z0=max z1=min

T=(z0+z1)/2; TT=0;

S0=0; n0=0; S1=0; n1=0;

allow=0.5; d=abs(T-TT);

count=0; while(d>=allow) count=count+1; for i=1:x

for j=1:y

if (I(i,j)>=T) S0=S0+I(i,j); n0=n0+1; end

if (I(i,j)T0=S0/n0; T1=S1/n1;

TT=(T0+T1)/2; d=abs(T-TT); T=TT; end

tmax2=T %tmax2 =77.2717

Seg=zeros(x,y); for i=1:x for j=1:y

if(I(i,j)>=T)

Seg(i,j)=1; end end end

subplot(322),imshow(Seg); title('迭代阈值分割1'); SI=1-Seg;

subplot(323),imshow(SI); title('迭代阈值分割2');

%%%%%%%%%%%%%%%%%%最优法切割%%%%%%%%%%%%%%%%%%%%%%%%%%

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\课程设计题目\\2.bmp');

[m,n]=size(I); dt = 1; d = 0.3; I9 = I;

I9=double(I9);

while (abs(dt-d)>0.001) background = 0; object = 0;

bm = 0;%背景象素数 om = 0;%前景象素数 for i=1:m

for j=1:n

if (I9(i,j)background = background +I9(i,j); bm = bm+1; else

object = object + I9(i,j); om = om+1; end end end dt = d;

d = (background/bm+object/om)/2; %假设先验概率相同 end

tmax3=d %tmax3 =79.9102 for i = 1:m for j = 1:n

if I9(i,j)I9(i,j)=1; end end end

subplot(324),imshow(I9); title('最优阈值法切割');

%%%%%%%%%%%%%%%%%%%%最大方差法图像切割%%%%%%%%%%%%%%%%%%%%%%%%%%% I=imread('C:\\Documents and Settings\\Administrator\\桌面\\课程设计题目\\2.bmp');

[r,t]=size(I); count=imhist(I); n=r*t; l=256;

count=count/n;%各级灰度出现的概率 for i=2:l

if count(i)~=0 st=i-1; break end end

%以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1

if count(i)~=0; nd=i-1; break end end

%实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1);

p=st;q=nd-st;%p和q分别是灰度的起始和结束值 u=0;

for i=1:q;

u=u+f(i)*(p+i-1); ua(i)=u;

end

%计算图像的平均灰度值 for i=1:q;

w(i)=sum(f(1:i)); end

%计算出选择不同k的时候,A区域的概率

d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差 [y,tp]=max(d);%求出最大方差对应的灰度级 tmax4=tp % tmax=96 y1=zeros(r,t); for i=1:r

for j=1:t

x1(i,j)=double(I(i,j)); end end

for i=1:r

for j=1:t

if (x1(i,j)>tp)

y1(i,j)=x1(i,j); else

y1(i,j)=0; end end end

%上面一段代码实现分割 subplot(325),imshow(y1);

title('最大方差法分割的图像');

%%%%%%%%%%%%%%%%%%%最大熵法图像切割%%%%%%%%%%%%%%%%%%%%%%%%

I=imread('C:\\Documents and Settings\\Administrator\\桌面\\课程设计题目\\2.bmp'); X=double(I); [M,N]=size(I);

hist=zeros(1,256); tic;

for i=1:1:M for j=1:1:N fi=X(i,j);

hist(fi+1)=hist(fi+1)+1; end end

i=1:1:256;

p=zeros(1,256); for i=1:1:256

p(i)=hist(i)/(M*N); end

E1=zeros(1,256); E2=zeros(1,256); P=zeros(1,256); E=zeros(1,256);

for t=1:1:256 for i=1:1:t

P(t)=P(t)+p(i); end

if(P(t)>0&&P(t)<1) for i=1:1:t

E1(t)=E1(t)-(p(i)/P(t))*log(p(i)/P(t)+eps); end

for i=t+1:1:256

E2(t)=E2(t)-(p(i)/(1-P(t)))*log(p(i)/(1-P(t))+eps); end end

E(t)=E1(t)+E2(t); end

MAX=0.000001; for t=68:1:156 if(E(t)>MAX) MAX=E(t); th=t; end end

tmax5=th %tmax5=84 g=zeros(M,N); for i=1:1:M for j=1:1:N

if(thg(i,j)=X(i,j); else X(i,j)=0; g(i,j)=X(i,j);

end end end

X=X.*255; X=uint8(X);

subplot(326),imshow(X); title('最大熵阈值分割图'); t_eclapsed=toc;

3.2 图像切割实现图形显示

图1 原图及其直方图显示

z0 =92 z1 =2 tmax2 =77.2717 tmax3 =79.9102 tmax4 = 96 tmax5 = 84

图2 各种方法实现图像切割图形显示

4总结

通过实验不难看出,针对本实验所选择的图来说,极小值点阈值分割得到的效果最好,而最大熵阈值的净利要次之,通过实验可以说,这几种方法各有所长,针对不同的图形都有自己的优势,所以学会这几种方法的阈值分割对以后进行图像分割有深远的意义.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务