【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《迭代阈值法》,欢迎阅读!
迭代阈值法
摘 要
数字图像处理的目的之一是图像识别, 而图像分割是图像识别工作的基础。图像分割是指把图像分解成具有特性的区域并提取出感兴趣目标的技术和过程,是计算机视觉领域的一个重要而且基本的问题,分割结果的好坏将直接影响到视觉系统的性能。因此从原理,应用和应用效果的评估上深入研究图像分割技术具有十分重要的意义。
本课题主要介绍了图像分割的基本知识。图像分割的算法有阈值分割法,边缘检测法,区域分割等,本设计重点介绍了基于最小点阈值方法,基于最优阈值分割方法,基于迭代图像分割方法,最大类间方差法(OTSU)的图像分割法的原理和他们的MATLAB的实现代码与运行结果。
关键词:图像分割; MATLAB; 阈值分割;
I / 14
迭代阈值法
目 录
1 课程设计目的.......................................................................................................... 3 2 课程设计要求.......................................................................................................... 3 3 相关知识.................................................................................................................. 3
3.1 图像分割的概述........................................................................................... 3 3.2 阈值分割的基本原理................................................................................... 4 3.3 阈值分割方法的分类................................................................................... 5
3.3.1 基于点的全局阈值方法.................................................................... 6 3.3.2 基于区域的全局阈值方法................................................................ 6 3.3.3 局部阈值法和多阈值法.................................................................... 6
4 程设计分析.............................................................................................................. 6
4.1 基于迭代的方法实现图像切割................................................................... 6 4.2 最大类间方差的方法实现图像切割........................................................... 7 5 程序设计.................................................................................................................. 8
5.1 程序简单介绍............................................................................................... 8 5.2 程序代码....................................................................................................... 8 6 结果与分析............................................................................................................ 11 结束语.......................................................................................................................... 13 参考文献...................................................................................................................... 14
II / 14
迭代阈值法
迭代阈值法
1 课程设计目的
本设计的课题任务是掌握图像阈值分割算法研究,实现对图像的分割。了解图像分割的应用及基本方法,理解阈值化图像分割原理,理解三类典型的阈值化分割算法,并利用之进行图像分割,给出实验结果并做出分析。
2 课程设计要求
⑴ 查阅相关资料;
⑵ 理解基于各像素值的阈值分割算法,基于区域性质的阈值分割算法, 基于坐标位置的阈值分割算
;软件编程实现利用基于各像素值的阈值分割算法
进行图像分割,要求完成如下内容:包括极小值点阈值、最优阈值、迭代阈值,基于最大方差的阈值,基于最大熵的阈值等方法,利用之实现图像分割,这里的图像可以针对核磁共振图像
⑶ 用MATLAB实现,并观察各算法之间的区别。
3 相关知识
3.1 图像分割的概述
在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些
部分称为目标或前景(其他部分称为背景),他们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将他们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成格局特性的区域并提取出感兴趣目标的技术和过程。这里特性可以是象素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区
。现有的图像分割算法有:
阈值分割、边缘检测和区域提取法。本文着重研究基于阈值法的图像分割技术。 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,
3 / 14
迭代阈值法
而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准。
阈值法是一种传统的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技
。已被应用于很多的领域,
例如,在红外技术应用中,红外无损检测中红外热图像的分割,红外成像跟踪系统中目标的分割;在遥感应用中,合成孔径雷达图像中目标的分割等;在医学应用中,血液细胞图像的分割,磁共振图像的分
;在农业工程应用中,水果品
质无损检测过程中水果图像与背景的分割。在工业生产中,机器视觉运用于产品质量检测等等。在这些应用中,分割是对图像进一步分析、识别的前提,分割的准确性将直接影响后续任务的有效性,其中阈值的选取是图像阈值分割方法中的关键技术。
3.2 阈值分割的基本原理
图像阈值化分割是一种最常用,同时也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属划分可以通过从灰度级出发选取一个或多个阈值来实现。
阈值分割法是一种基于区域的图像分割技术,其基本原理是:通过设定不同的特征阈值,把图像像素点分为若干类.常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征.设原始图像为f(x,y),按照一定的准则在f(x,y)中找到特征值T,将图像分割为两个部分,分割后的图像为 :
4 / 14
。这样的
迭代阈值法
(3.2.1)
若取
=0(黑),=1(白),即为我们通常所说的图像二值化。
一般意义下,阈值运算可以看作是对图像中某点的灰度、该点的某种局部特
性以及该点在图像中的位置的一种函数,这种阈值函数可记作
(3.2.2)
式中f(x,y)是点(x,y)的灰度值;n(x,y)是点(x,y)的局部邻域特性.根据对T的不同约束,可以得到3种不同类型的阈值,即 (1)点相关的全局阈值
只与点的灰度值有关 (2)区域相关的全局阈值
(3.2.4) (3.2.3)
与点的灰度值和该点的局部邻域特征有关 (3)局部阈值或动态阈值(3.2.5)
它与点的位置、该点的灰度值和该点邻域特征有关 因此本文分三大类对阈值选取技术进行综述: 1) 基于点的全局阈值方法; 2) 基于区域的全局阈值方法 3) 局部阈值方法和多阈值方法
3.3 阈值分割方法的分类
全局阈值法指利用全局信息对整幅图像求出最优分割阈值,可以是单阈值,也可以是多阈值;局部阈值法是把原始的幅图像分为几个小的子图像,再对每个子图像应用全局阈值法分别求出最优分割值。其中全局阈值法又可分为基于点的阈值法和基于区域的阈值法。阈值分割法的结果很大程度上依赖于阈值的选择,
5 / 14
迭代阈值法
因此该方法的关键是如何选择合适的阈值。由于局部阈值法中仍要用到全局阈值法,因此本文主要对全局阈值法中基于点的阈值法和基于区域的阈值法分别进行了研究。根据阈值法的原理可以将阈值选取技术分为三大类 3.3.1 基于点的全局阈值方法
基于点的全局阈值算法与其他几大类方法相比,算法时间复杂度较低,易于实现,适合应用于在线实时图像处理系统。 3.3.2 基于区域的全局阈值方法
对一幅图像而言,不同的区域,比如说目标区域或背景区域,同一区域内的象素,在位置和灰度级上同时具有较强的一致性和相关性。 3.3.3 局部阈值法和多阈值法
局部阈值(动态阈值) 当图像中有如下一些情况:有阴影,照度不均匀,各处的对比度不同,突发噪声,背景灰度变化等,如果只用一个固定的全局阈值对整幅图像进行分割,则由于不能兼顾图像各处的情况而使分割效果受到影响。有一种解决办法就是用与象索位置相关的一组阈值(即阈值使坐标的函数)来对图像各部分分别进行分
。这种与坐标相关的阈值也叫动态阈值,此方法也叫变
化阈值法,或自适应阈值法。这类算法的时间复杂性和空间复杂性比较大,但是抗噪能力强,对一些用全局阈值不易分割的图像有较好的效
。
多阈值法很显然,如果图像中含有占据不同灰度级区域的几个目标,则需要使用多个阈值才能将他们分开。其实多域值分割,可以看作单阈值分割的推广。
4 程序设计分析
4.1 基于迭代的方法实现图像切割
迭代法是基于逼近的思想,其步骤如下:
(1)求出图象的最大灰度值和最小灰度值,分别记为
和
,令初始阈值
6 / 14
迭代阈值法
(4.1.1)
和
(2)根据阈值;
将图象分割为前景和背景,分别求出两者的平均灰度值
(3)求出新阈值: (4)若
=
(4.1.2)
,则所得即为阈值;否则转到第二步,迭代计算。
迭代所得的阈值分割的图象效果良好。基于迭代的阈值能区分出图像的前景和背景的主要区域所在,但在图像的细微处还没有很好的区分度。
但令人惊讶的是,对某些特定图象,微小数据的变化却会引起分割效果的巨大改变,两者的数据只是稍有变化,但分割效果却反差极大
经试验比较,对于直方图双峰明显,谷底较深的图像,迭代方法可以较快地获得满意结果。但是对于直方图双峰不明显,或图像目标和背景比例差异悬殊,迭代法所选取的阈值不如最大类间方差法。
4.2 最大类间方差的方法实现图像切割
由Otsu于1978年提出的最大类间方差法以其计算简单、稳定有效,一直广为使
。从模式识别的角度看,最佳阈值应当产生最佳的目标类与背景类的分
离性能,此性能我们用类别方差来表征,为此引入类内方差 、类间方差 和总体方差。最大类间方差法计算简单、稳定有效,一直广为使用,是一种受到普遍欢迎的阈值选取方
。其基本思路是将直方图在某一阈值处分割成两组,当被分
成的两组的方差为最大时,得到阈值。因为方差是灰度分布均匀性的一种量度,方差值越大,说明构成图像的两部分差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小。
7 / 14
迭代阈值法
5 程序设计
5.1 程序简单介绍
程序除了有题目中要求的自编程序实现最大类间方差法外,还扩展了迭代法阈值分割,功能较多,为了使程序有良好的人机界面,主程序中提供了简单的菜单界面。同时为了增加程序的可读性,分模块编写,然后在主函数中调用。
5.2 程序代码
function main %主程序
clear;close all; %清除变量,关闭所有窗口
[name path]=uigetfile('C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Winter.jpg');%获取图片路径及文件名 I=imread([path name]);%读图 I=rgb2gray(I);%彩色转黑白 while 1 %循环执行
disp('0 原图 1 OTSU 2 全局阈值 3 迭代法 4 退出');%提示信息 select=input('请选择:'); %选择相应功能 switch select case 0
yuantu(I); %输入0 显示原图 case 1 %输入1 OTSU法 fun1(I);
case 2 %输入2 全局阈值法 fun2(I); case 3
fun3(I) %输入3 迭代法 case 4
return; %输入4 退出
8 / 14
迭代阈值法
otherwise %其他值不处理 end end
% OTSU
function fun1(I) %阈值计算程序 Ni=imhist(I);%计算直方图数组 N=sum(Ni); %总像素点个数 delamax=0; %类间方差最大值 threshold=0; %阈值 for k=2:255
u=dot([0:255],Ni/N); %图像的总平均灰度级 w0=sum(Ni(1:k)/N); %C0类像素所占面积的比例 w1=1-w0; %C1类像素所占面积的比例 if w0==0|w0==1 %当w0为1或0时提前结束本次循环 continue end
u0=dot([0:k-1],Ni(1:k)/N)/w0; %C0类像素的平均灰度 u1=dot([k:255],Ni(k+1:256)/N)/w1; %C1类像素的平均灰度 dela(k)=w0*(u-u0)^2+w1*(u-u1)^2; %类间方差公式
%求出类间方差的最大值,最大时的那个值对应的k值存入delamax if dela(k)>delamax delamax=dela(k); threshold=k-1; end end
BW1=im2bw(I,threshold/255); %阈值分割 figure
imshow(BW1),title('自编程序运行结果')%显示图片 disp('自编程序求的的阈值:')%显示提示信息
9 / 14
迭代阈值法
disp(threshold) %显示结果 %调用系统函数OTSU阈值分割
level=graythresh(I);%调用系统函数计算阈值 BW2=im2bw(I,level); %阈值分割 figure
imshow(BW2),title('调用库函数运行结果') level=round(level*255); disp('调用库函数求得的阈值:') disp(level) %全局阈值
function fun2(I) %阈值分割程序 [width height]=size(I);;%获取图片宽高 th=input('请输入阈值:'); for i=1:width for j=1:height
if(I(i,j)灰度小于阈值时则为黑色 BW1(i,j)=0;
else % 灰度大于等于阈值时则为白色 BW1(i,j)=1; end end end figure
imshow(BW1),title('全局阈值') %迭代法
function fun3(I) %迭代法求阈值 J=double(I);
T=(min(J(:))+max(J(:)))/2; %T的初始阈值 done=false; %done 的初始值为false
10 / 14
迭代阈值法
i=0;
while ~done %当done为false是则执行循环 r1=find(J<=T); %找出不大于T的所有像素点索引值 r2=find(J>T); %找出大于T的所有像素点索引值 Tnew=(mean(J(r1))+mean(J(r2)))/2; %计算新的阈值 done=abs(Tnew-T)<1; %判断|T2-T1|是否小于T0 T=Tnew; i=i+1; end
J(r1)=0; %小于等于阈值的为黑 J(r2)=1 ; %大于阈值的为白 figure
imshow(J),title('迭代法求阈值') function yuantu(I) %显示原图 figure
imshow(I);title('原图')
6 结果与分析
11 / 14
迭代阈值法
图 6.1 原图,自编程结果图,调用库函数图
不同阈值的全局阈值图,迭代法求阈 值图的比较
结果分析:
调用系统函数与自编的程序求得的阈值一样,处理的结果完全一样。手动输入阈值分割的话输入的阈值不同处理的结果也不一样,阈值差别越大图像的区别越明显但如果输入的阈值和OTSU算出的阈值一样,处理结果就完全一样。另外采用迭代法,通过多次用不同的图片处理发现算出的阈值和最大类间方差法基本一样,但有时会有误差,处理结果基本一样。
12 / 14
迭代阈值法
结束语
通过本学期对数字图像处理的学习,在老师的指导下,对选取的图像进行迭代阈值法的处理得到处理结果,并对结果进行分析。这个过程分为三步: 第一步:熟悉所运用的仿真软件MATLAB,查阅相关资料了数字图像处理中的
迭代阈值法的原理。
第二步:设计相应的程序并选取合适的图像,运用仿真软件对图像进行仿真处理,
从而得到处理结果。
第三步:对得到的处理结果进行分析,比较不同的迭代法的优缺点,加深对这种
方法的理解。
通过这个课程设计的学习,使我对数字图像处理的理解更加深刻了。数字图像处理和我们的生活息息相关,理解它就是理解生活,同时我也感受到老师对我们学习科学知识的重要性,并且明白想要知道更多的东西就要在动脑的同时多动手进行实践,帮助我们去理解,即理论与实际相结合。
13 / 14
迭代阈值法
参考文献
[1] 王家文.MATLA.图形图像处理[M].北京,国防工业出版社.2001:12-17:30-55 [2] 甲永红.数字图像处理[M] .武汉,武汉大学出版社.2011:71-84.:25-68
[3] 李红梅.二值图像的阈值分割方法探讨[J] .上海,科技经济市 场.2007:38-42:68-79
[4] 刘刚. MATLAB数字图像处理[M].北京,机械工业出版社.2010:34-45.:128-205
[5]张强, 王正林.《精通MATLAB图像处理》. 电子工业出版社,1997:99-106 [6]陈怀琛.《MATLAB及其在课程中的应用指南》. 西安电子科技大学出版社,2000:256-306
[7]朱习军.《MATLAB在信号与系统与图象处理中的应用》. 电子工业出版社,2002:78-109
14 / 14
本文来源:https://www.wddqxz.cn/a90e5dc282c758f5f61fb7360b4c2e3f56272552.html
|