图像分割算法研究及实现.docx
- 文档编号:4054669
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:16
- 大小:293.39KB
图像分割算法研究及实现.docx
《图像分割算法研究及实现.docx》由会员分享,可在线阅读,更多相关《图像分割算法研究及实现.docx(16页珍藏版)》请在冰豆网上搜索。
图像分割算法研究及实现
中北大学
课程设计说明书
学生:
梁一才学号:
10050644X30
学院:
信息商务学院
专业:
电子信息工程
题目信息处理综合实践:
图像分割算法研究与实现
指导教师:
平
职称:
副教授
2013年12月15日
中北大学
课程设计任务书
13/14学年第一学期
学院:
信息商务学院
专业:
电子信息工程
学
生
姓
名:
焦晶晶
学号:
10050644X07
学
生
姓
名:
晓峰
学号:
10050644X22
学
生
姓
名:
梁一才
学号:
10050644X30
课程设计题目:
信息处理综合实践
图像分割算法研究与实现
起迄日期:
2013年12月16日〜2013年12月27日
课程设计地点:
电子信息科学与技术专业实验室
指导教师:
平
系主任:
王浩全
下达任务书日期:
2013年12月15日
课程设计任务书
1.设计目的:
1、通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力;
2、掌握Matlab使用方法,能熟练运用该软件设计并完成相应的信息处理;
3、通过图像处理实践的课程设计,掌握设计图像处理软件系统的思维方法和基本开发过程。
2.设计容和要求(包括原始数据、技术参数、条件、设计要求等):
(1)编程实现分水岭算法的图像分割;
(2)编程实现区域分裂合并法;
(3)对比分析两种分割算法的分割效果;
(4)要求每位学生进行查阅相关资料,并写出自己的报告。
注意每个学生的报告要有所侧重,写出自己所做的容。
3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、…实物样品等〕:
每个同学独立完成自己的任务,每人写一份设计报告,在课程设计论文中写明自己设计的部分,给出设计结果。
课程设计任务书
4.主要参考文献:
•■・・■・・・Mil■■■!
■■■■・*■・・■■・・■・・・Mil■■■■■■■■・■■・・■■・・■・・・Mil■■■■■■■■・iB■・・■■・・■・・・Mil■■■■■■■・■■■・・■■・・■・・・Mil■■■■■■■■■■■■・・■■■・・■・・・■■■■■■■■■■■■・・■■■・・■・・・■■■■■■■■■■£■■・・■!
■・・■・・・■■■■■■■■■■■■・・■!
■・・■・・・■■■■■■■BiB■・・■■■・・■・・・・JB■■■■
[1]夏得深,傅德胜•现代图像处理技术与应用[M]•:
东南大学出版,2001:
120-135.
[2]K.R.Castleman.数字图像处理[M]电子工业,1998:
110,166,220.
[3]冈萨雷斯.数字图像处理(MATLA版)[M].:
电子工业,2005;111-120,152.
[4]直芳,游胜志.基于多尺度彩色形态矢量算子的边缘检测[J].中国图像图形学报,
2002,32
(1):
30-33.
⑸晨,顾峰:
基于3D直方图的彩色图像分割方法[J].中国图像图形学报,2002,33
(2):
35-38.
5.设计成果形式及要求:
6—is亠亠i■亠亠m・ai亠■■a」亠■・■>.
毕业设计说明书
仿真结果
6.工作计划及进度:
2013年
12月16日~12月19日:
查资料;
12月19日~12月24日:
在指导教师指导下设计方案;
12月25日~12月27日:
撰写课程设计说明书;
12月27日:
答辩
系主任审查意见:
签字:
年月日
1引言1
1.1数字图像分割的现状.1
1.2数字图像分割的意义.1
2基于MATLA的图像分割2
3图像分割的主要研究方法.3
3.1图像分割定义3
3.2图像分割方法综述4
3.3分水岭算法4
3.3.1分水岭算法概念4
3.3.2分水岭算法原理5
3.4区域分裂合并法6
3.4.1区域分裂合并算法基本原理6
3.4.2区域分裂合并算法算法过程7
4MATLAB程序与结果8
4.1分水岭算法结果与分析.8
4.2分裂合并算法结果与分析.10
5两种图像分割方法的比较11
6结论13
7参考文献14
1引言
1.1数字图像分割的现状图像分割技术,是从图像中将某个特定区域与其它部分进行分离并提取出来的处理。
图像分割的方法有许多种,有阈值分割方法,边界分割方法,区域提取方法,结合特定理论工具的分割方法等。
早在1965年就有人提出检测边缘算子,边缘检测已产生不少经典算法。
越来越多的学者开始将数学形态学、模糊理论、遗传算法理论、分形理论和小波变换理论等研究成果运用到图像分割中,产生了结合特定数学方法和针对特殊图像分割的先进图像分割技术。
尤其是近年来迅速发展起来的小波理论为图像处理带来了新的理论和方法。
小波变换具有良好局部特性,当小波函数尺度较大时,抗噪声的能力强,当小波函数尺度较小时,提取图像细节的能力强,这样就可以很好地解决抑制噪声和提取图像边缘细节之间的矛盾。
图像分割来说,如果不利用关于图像或所研究目标的先验知识,任何基于数学工具的解析方法都很难得到很好的效果。
因此,人们倾向于重新设计一个针对具体问题的新算法来解决所而临的图像分割问题。
这在只有少量图像样本的时候,利用各种先验知识,设计一个具有针对性的算法进行图像分割是比较容易的。
但是当需要构建一些实用的机器视觉系统时,所面临的将是具有一定差异性、数量庞大的图像库,此时如何很好的利用先验知识,设计一个对所有待处理图像都实用的分割算法将是一件非常困难的任务。
其次,由于缺乏一个统一的理论作为基础,同时也缺乏对人类视觉系统(humanvisionsystem,HVS机理的深刻认识,构造一种能够成功应用于所有图像的统一的图像分割算法,到目前为止还是难以实现的。
1.2数字图像分割的意义
现实生活中在分割一幅图像时,多是依据经验和直觉去选择方法,通过反复实践来找到一种最佳的方法。
与计算机科学技术的确定性和准确性相比,图像分割更像是一种艺术行为,有经验的人能比较容易的选用出适当的方法,使不同的图像都得到最佳的分割效果。
但是,当要处理的图像十分庞大时,图像分割就像是流水线上的一道简单工序,这种艺术行为就显得无能为力了。
随着图像技术和多媒体技术的发展,包括图像、音频和视频等信息的多媒体数据己经广泛用于
Internet和企事业信息系统中,而且越来越多的商业活动、信息表现和事务交易中都将包括多媒体数据,自然也就包含了大量的图像,基于容的图像检索的广泛应用就是一个例子,这些常常都是以图像分割作为基础的。
由于图像的多义性和复杂性,许多分割的工作无法依靠计算机自动完成,而手工分割又存在工作量大,定位不准确的难题,因此,人们提出了一些人工交互和计算机自动定位相结合的方法,利用各自的优势,实现目标轮廓的快速定位。
相信这些交互式方法的应用,必将推动图像目标分割与提取这一既具有广阔的应用前景又具有重要的学术价值的课题的进一步研究,也必将成为一个更为独立和活跃的研究领域。
边缘提取是图像边缘检测和计算机视觉等领域最基本的技术,如何准确、快速的提取图像中的边缘信息一直是这些领域的研究热点,随着此项技术研究的深入和整个领域的不断发展,边缘提取技术已经成为图像分割、目标识别、图像压缩等技术的基础。
其理论意义深远,应用背景广泛,有相当的使用价值和理论难度。
边缘提取算法的提出通常是面向具体问题的,普遍实用性较差。
区域提取法有两种基本形式:
一种是从单个像素出发,逐渐合并以形成所需的分割区域;另一种是从全图出发,逐渐分裂切割至所需的分割区域。
在实际中使用的通常是这两种基本形式的结合。
根据以上两种基本形式,区域提取法可以分为区域生长法和分裂合并法。
区域生长法的基本思想是将具有相似性质的像素合起来构成区域,具体做法是先给定图像中要分割的目标物体的一个小块或者说种子区域,再在种子区域的基础上不断将其周围的像素点以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的目的。
该方法的关键是要选择合适的生长或相似准则。
生长准则一般可分为三种:
基于区域灰度差准则、基于区域灰度分布统计性质准则和基于区域形状准则。
分裂合并法是先将图像分割成很多的一致性较强的小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的。
区域提取法的缺点是往往会造成过度分割,即将图像分割成过多的区域,因此近年来针对这种方法的研究较少。
2基于MATLA啲图像分割
MATLAB允许用户以数学形式的语言编写程序,用户在命令窗口中输入命令即可直接得出结果,这比C++、Fortran和Basic等等该机语言都要方便的多
而且它是用C语言开发的,其流程控制语句与C语言中的相应语句几乎一致。
这给使用上带来了方便,使我能较快的适应与使用MATLAB这门语言,使用起来更加方便。
另外,MATLAB的部函数提供了相当丰富的函数,这些函数解决许多基本问题,如矩阵的输入。
在其它语言中(比如C语言中),要输入一个矩阵,先要编写一个矩阵的子函数,而MATLAB©言则提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求做明确的维数说明。
与利用C语言或Fortran等等高级语言编写数值计算的程序相比,利用MATLAB可以节省大量的编程时间。
这就给用户节省了很多的时间,使用户可以把自己的精力放到创造方面,而把繁琐的问题交给部函数来解决。
除了这些数量巨大的基本部函数外,MATLAB还有为数不少的工具箱。
这些工具箱用于解决某些领域的复杂问题。
3图像分割的主要研究方法
3.1图像分割定义
图像分割是图像处理中的一项关键技术,自20世纪70年代起一直受到人们的高度重视,至今已提出了上千种各种类型的分割算法,现提出的分割算法大都是针对具体问题的,并没有一种适合于所有图像的通用分割算法,而且近年来每年都有上百篇相关研究报道发表。
然而,还没有制定出选择合适分割算法的标准,这给图像分割技术的应用带来许多实际问题。
因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一[1]。
多年来人们对图像分割提出了不同的解释和表述,借助集合概念对图像分割可给出如下定义:
令集合R代表整个图像区域,对R的图像分割可以看做是将R分成N个满足以下条件的非空子集R1,R2,R3,…,RN;
(1)在分割结果中,每个区域的像素有着相同的特性;
(2)在分割结果中,不同子区域具有不同的特性,并且它们没有公共特性;
(3)分割的所有子区域的并集就是原来的图像;
(4)各个子集是连通的区域;
图像分割是把图像分割成若干个特定的、具有独特性质的区域并提取出感兴趣目标的技术和过程,这些特性可以是像素的灰度、颜色、纹理等提取的目标可以是对应的单个区域,也可以是对应的多个区域。
3.2图像分割方法综述图像分割是指将图像划分为与其中含有的真实世界的物体或区域有强相关
性的组成部分的过程。
图像分割是图像处理和分析中的重要问题,也是计算机视
觉研究中的一个经典难题。
尽管它一直受到科研人员的重视,但是它的发展很慢
被认为是计算机视觉的一个瓶颈。
迄今为止,还没有一种图像分割方法适用于所有的图像,也没有一类图像所有的方法都适用于它。
近几年来,研究人员不断改进原有方法并将其它学科的新理论和新方法引入图像分割,提出了不少新的分割方
法。
本文对传统的图像分割方法进行分析。
典型的图像分割方法有阈值法,边缘检测法,区域法。
分析各种图像分割方法可以发现,它们分割图像的基本依据和条件有以下4方面:
(1)分割的图像区域应具有同质性,如灰度级别相近、纹理相似等;
(2)区域部平整,不存在很小的小空洞;
(3)相邻区域之间对选定的某种同质判据而言,应存在显著差异性;
(4)每个分割区域边界应具有齐整性和空间位置的准确性。
现有的大多数图像分割方法只是部分满足上述判据。
如果加强分割区域的同
性质约束,分割区域很容易产生大量小空洞和不规整边缘:
若强调不同区域间性质差异的显著性,则极易造成非同质区域的合并和有意义的边界丢失。
不同的图像分割方法总有在各种约束条件之间找到适当的平衡点。
3.3分水岭算法
3.3.1分水岭算法的概念:
分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。
分水岭的概念和形成可以通过模拟浸入过程来说明。
在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。
3.3.2分水岭算法的原理:
分水岭的计算过程是一个迭代标注过程。
分水岭比较经典的计算方法是L.Vincent提出的。
在该算法中,分水岭计算分两个步骤,一个是排序过程,一个是淹没过程。
首先对每个像素的灰度级进行从低到高排序,然后在从低到高实现淹没过程中,对每一个局部极小值在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。
分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。
显然,分水岭表示的是输入图像极大值点。
因此,为得到图像的边缘信息,通常把梯度图像作为输入图像,即
g(x,y)=grad(f(x,y))={[f(x,y)-f(x-1,y)]2[f(x,y)-f(x,y-1)]2}0.5
式中,f(x,y)表示原始图像,grad{.}表示梯度运算。
分水岭算法对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化,都会产生过度分割的现象。
但同时应当看出,分水岭算法对微弱边缘具有良好的响应,是得到封闭连续边缘的保证的。
另外,分水岭算法所得到的封闭的集水盆,为分析图像的区域特征提供了可能。
为消除分水岭算法产生的过度分割,通常可以采用两种处理方法,一是利用先验知识去除无关边缘信息。
二是修改梯度函数使得集水盆只响应想要探测的目标。
为降低分水岭算法产生的过度分割,通常要对梯度函数进行修改,一个简单的方法是对梯度图像进行阈值处理,以消除灰度的微小变化产生的过度分割。
即
g(x,y)=max(grad(f(x,y)),g9)
式中,g9表示阈值。
程序可采用方法:
用阈值限制梯度图像以达到消除灰度值的微小变化产生的过度分割,获得适量的区域,再对这些区域的边缘点的灰度级进行从低到高排序,然后在从低到高实现淹没的过程,梯度图像用Sobel算子计算获得。
对梯度图像进行阈值处理时,选取合适的阈值对最终分割的图像有很大影响,因此阈值的选取是图像分割效果好坏的一个关键。
缺点:
实际图像中可能含有微弱的边缘,灰度变化的数值差别不是特别明显,选取阈值过大可能会消去这些微弱边缘。
分水岭算法是数学形态学分割方法中的经典算法,它将图像看作是地形学上被水覆盖的自然地貌,图像中的每一像素的灰度值表示该点的海拔高度,其每
一个局部极小值及其影响区域称为集水盆,集水盆的边界则是分水岭,在各极小区域的表面打一个小孔,同时让水从小孔中涌出,并慢慢淹没极小区域周围的区域,那么各极小区域波及的围,即是相应的集水盆,对应图像中的区域;不同区域的水流相遇时的界限,就是期望得到的分水岭,对应区域的边缘。
分水岭变换可以保证分割区域的连续性和封闭性。
分水岭变换是从局部极小点开始,即只能是在梯度图中用,原始图是转换后才能用于分水岭变换的。
一般图像中存在多个极小值点,通常会存在过分割现象,可以采用梯度阈值分割改进或者采用标记分水岭算法将多个极小值区域连在一起。
3.4区域分裂合并法
341区域分裂合并法基本思想
区域分裂合并法无需预先指定种子点,它按某种一致性准则分裂或者合并区域.可以先进行分裂运算,然后再进行合并运算;也可以分裂和合并运算同时进行经过连续的分裂和合并,最后得到图像的精确分割效果。
分裂合并法对分割复杂的场景图像比较有效。
图3.1区域合并法示图
342区域分裂合并算法过程
令R表示整幅图像区域并选择一个谓词P。
对R进行分割的一种方法是反复将分割得到的结果图像再次分为四个区域,直到对任何区域R,有P(R)=TRUE
这里是从整幅图像开始。
如果P(R)=FALSE就将图像分割为4个区域。
对任何区域如果P的值是FALSE就将这4个区域的每个区域再次分别分为4个区域,如此不断继续下去。
这种特殊的分割技术用所谓的四叉树形式表示最为方便(就
是说,每个非叶子节点正好有4个子树),这正如图10.42中说明的树那样。
注意,树的根对应于整幅图像,每个节点对应于划分的子部分。
此时,只有F4进
行了进一步的再细分。
图3.2区域合并算法示图
如果只使用拆分,最后的分区可能会包含具有相同性质的相邻区域。
这种缺陷可以通过进行拆分的同时也允许进行区域聚合来得到矫正。
就是说,只有在P(RUR)=TRUE时,两个相邻的区域R和R才能聚合。
前面的讨论可以总结为如下过程。
在反复操作的每一步,我们需要做:
(1)对于任何区域Ri,如果P(Ri)=FALSE,就将每个区域都拆分为4个相连的象限区域。
(2)将P(RjURk)=TRUE勺任意两个相邻区域Rj和Rk进行聚合。
(3)当再无法进行聚合或拆分时操作停止。
可以对前面讲述的基本思想进行几种变化。
例如,一种可能的变化是开始时将图像拆分为一组图象块。
然后对每个块进一步进行上述拆分,但聚合操作开始时受只能将4个块并为一组的限制。
这4个块是四叉树表示法中节点的后代且都满足谓词P。
当不能再进行此类聚合时,这个过程终止于满足步骤2的最后的区
域聚合。
在这种情况下,聚合的区域可能会大小不同。
这种方法的主要优点是对
于拆分和聚合都使用同样的四叉树,直到聚合的最后一步。
4MATLAB程序与结果
4.1分水岭算法程序与结果
1=imread('C:
\Users\Windows\Desktop\diandian.jpg');
imshow(l);
h=fspecial('sobel');%获得纵方向的sobel算子
fd=double(l);
g=sqrt(imfilter(fd,h,'replicate').A2+imfilter(fd,h','replicate').A
2);%使用sobel算子进行梯度运算
figure;
imshow(g);
g2=imclose(imopen(g,ones(3,3)),ones(3,3));%进行开闭运算对图像进行
平滑figure;
imshow(g2);
im=imextendedmin(g2,10);%得到最小值附近的区域,此处的附近是相差10
的区域
Lim=watershed(bwdist(im));%再次分水岭计算
em=Lim==0;
g3=imimposemin(g2,im|em);%在梯度图上标出im和em,im是积水盆地的中心,em是分水岭
g4=watershed(g3);%第三次分水岭计算
figure;
imshow(g4);
g5=l;
g5(g4==0)=255;%从原图对分水岭进行观察
figure;
imshow(g5);
运行结果:
图4.1.3第二次分水岭计算图4.1.4第三次分水岭计算
图4.1.5从原图对分水岭进行观察
4.2分裂合并算法程序与结果
I1=imread('peppers.png');
I=rgb2gray(I1);
S=qtdecomp(I,.27);%以阈值ceil(0.27*255)=69对图像I进行四叉分解blocks=repmat(uint8(0),size(S));%得到一个和I同尺寸的黑色背景blocks
fordim=[5122561286432168421];%分块全是2的整数次幂,numblocks=length(find(S==dim));%有numblocks个尺寸为dim的分块,
if(numblocks>0)
values=repmat(uint8
(1),[dimdimnumblocks]);%产生一个dimx
dimxnumblocks的三维1值矩阵(%numblocks个尺寸为dimxdim的1值block)
values(2:
dim,2:
dim,:
)=0;
blocks=qtsetblk(blocks,S,dim,values);%blocks保存了所有块被
替换后的结果。
end
end
blocks(end,1:
end)=1;blocks(1:
end,end)=1;
imshow(I),figure,imshow(blocks,[])运行结果:
图421原图图422灰度图像
图423分裂后图像
5两种图像分割方法的比较
⑴分水岭:
图像分割的一种重要途径是通过边缘检测,即检测灰度级或者结构具有突变的地方,表明一个区域的终结,也是另一个区域开始的地方。
这种不连续性称为边缘。
不同的图像灰度不同,边界处一般有明显的边缘,利用此特征可以分割图像。
图像中边缘处像素的灰度值不连续,这种不连续性可通过求导数来检测到。
对于阶跃状边缘,其位置对应一阶导数的极值点,对应二阶导数的过零点(零交
叉点)。
因此常用微分算子进行边缘检测。
常用的一阶微分算子有Roberts算子、
Prewitt算子和Sobel算子,二阶微分算子有Laplace算子和Kirsh算子等。
在实际中,各种微分算子常用小区域模板来表示,微分运算是利用模板和图像卷积来实现。
这些算子对噪声敏感,只适合于噪声较小不太复杂的图像。
由于边缘和噪声都是灰度不连续点,在频域均为高频分量,直接采用微分运算难以克服噪声的影响。
因此用微分算子检测边缘前要对图像进行平滑滤波。
(2)区域分裂合并算法
,即区域特征一致性的测度,当图像中
4个相等的子区域,当相邻的子区域
直至所有区域不再满足分裂合并的
基本思想是先确定一个分裂合并的准则某个区域的特征不一致时就将该区域分裂成满足一致性特征时则将它们合成一个大区域条件为止•
当分裂到不能再分的情况时,分裂结束,然后它将查找相邻区域有没有相似的特征,如果有就将相似区域进行合并,最后达到分割的作用。
在这类方法中,最常用的方法是四叉树分解法(如图3所示)。
设R代表整个正方形图像区域,P代表逻辑谓词。
基本分裂合并算法步骤如下:
(1)对任一个区域,如果H(Ri)=FALSE就将其分裂成不重叠
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 分割 算法 研究 实现