数字图像处理论文图像分割方法研究.docx
《数字图像处理论文图像分割方法研究.docx》由会员分享,可在线阅读,更多相关《数字图像处理论文图像分割方法研究.docx(16页珍藏版)》请在冰豆网上搜索。
![数字图像处理论文图像分割方法研究.docx](https://file1.bdocx.com/fileroot1/2022-10/12/ff3eacac-2248-4cf2-9123-91bde255955b/ff3eacac-2248-4cf2-9123-91bde255955b1.gif)
数字图像处理论文图像分割方法研究
姓名
武易
学号
1341901124
成绩
江苏科技大学
数字图像处理本科生课程论文
论文题目:
__图像分割方法研究_______
完成时间:
_______2016/6/5__________
所在专业:
____计算机科学与技术_____
所在年级:
_____三年级______________
图像分割方法研究
2013级计算机专业1班1341901124武易
摘要:
图像分割是图像处理与机器视觉的基本问题之一,图像分割的应用非常广泛,几乎出现在有关图像处理的所有领域,并涉及各种类型的图像,数分割算法均基于灰度值的两个基本性质之一:
不连续性和相似性。
本文详述了阈值处理,边缘检测,区域分割,分水岭分割等经典算法,对人工智能基础上的分类算法只做简述。
关键词:
图像分割;数字图像处理;边缘检测,分水岭算法
1研究背景
图像分割是图像处理与机器视觉的基本问题之一,其要点是:
把图像划分成若干互不交叠区域的集合,这些区域要么对当前的任务有意义,要么有助于说明它们与实际物体或物体的某些部分之间的对应关系。
一般的图像处理过程如图1-1所示。
从图中可以看出,图像分割是从图像预处理到图像识别和分析理解的关键步骤,在图像处理中占据重要位置和起核心作用。
一方面它是目标表达的基础,对特征测量有重要的影响。
另一方面,图像分割以及基于分割的目标表达,特征提取和参数测量等将原始图像转化为更为紧凑的形式,使得更高层的图像识别,分析和理解成为可能。
图1.1一般的图像处理过程
图像分割的应用非常广泛,几乎出现在有关图像处理的所有领域,并涉及各种类型的图像。
例如,在遥感应用中,合成孔径雷达图像中目标的分割,遥感云图中不同云系和背景分布的分割等。
在医学应用中,脑部MR图像分割成灰质(GM),白质(WM),脑脊髓(CSF)等脑组织和其他非脑组织区域(NB)等。
在面向对象的图像压缩和基于内容的图像数据库查询中,将图像分割成不同的对象区域。
在这些应用中,分割通常是为了进一步对图像进行分析,识别,压缩编码等,分割的准确性直接影响后续任务的有效性,因此具有十分重要的意义。
按照通用的分割定义,分割出的区域需同时满足均匀性和连通性的条件。
其中均匀性是指该区域中的所有像素点都满足基于灰度,纹理,彩色等特征的某种相似性准则;连通性是指在该区域内存在连接任意两点的路径。
设F表示一幅图像中所有像素的集合,P(.)是有关均匀性的假设,分割定义为把F划分成若干子集(S1,S2,…,Sn),其中每一个子集都构成一个空间连通区域,即
且P(.)满足
和
P()=false,若Si与Sj在空间相邻
符合上述定义的分割计算十分复杂和困难,图像处理和视觉界的研究者们为此付出了长期的努力。
迄今为止,大部分研究成果都是针对某一类型图像,某一具体应用的分割,通用方法和策略仍面临者巨大的困难。
本文我们将对图像分割的方法进行分析和对比。
2主要理论概况
主要介绍课题相关理论基本方法
多数分割算法均基于灰度值的两个基本性质之一:
不连续性和相似性。
在第一类中,方法是以灰度突变为基础分割一幅图像,比如图像的边缘。
在第二类中,主要方法是根据一组预定义的准则将一幅图像分割为相似的区域。
阈值处理。
区域生长,区域分裂和区域聚合都是这类方法的例子。
这些方法在一定程度上依赖人类判断来识别区域的存在,并通过勾画边界或选择某个亮度值范围来定义它们。
还有一些方法从不完整的定义开始,不断细化分割,已达到更大的精度和一致性,完全自动的技术会确定有多少类物体出现,并将图像完全细分,并将图像完全细化,以将这些物体隔离出来。
但它们在小型计算机系统中应用甚微,且效率通常要比人工输入的效率低。
普通图像分割任务可视为分类问题的一个例子。
就像多数涉及要素或人工智能的技术那样,它可能不会使用与人类采用的相同输入或决策方法,但会力求实现相同的结果(且有时是成功的)。
卫星成像中一直使用了一种成功的一般分类方法,卫星图像中存在许多波段的数据。
如果在高维空间中画出图像中的每个像素点,空间中的各个坐标轴表示各个波段中的亮度,那么应用于土地利用,作物类型,土壤或岩性等的不同类型的点将会聚集在一起,且这些聚类彼此能很好地分开。
3.图像分割算法
3.1阈值处理
采用与阈值处理的方法,目标和背景像素会具有两种主要模式的灰度级。
一种从背景上提取对象的明显方法是选取一个阈值T来分离这两种模式。
任何满足f(x,y)>=T的点(x,y)称为对象点,其他点则称为背景点。
换言之,阈值处理后的图像g(x,y)定义为
g(x,y)=
标注为1的像素对应于对象,而标注为0的像素则对应于背景。
T为常数时,这种方法称为全局阈值处理;T在一幅图像上改变时,称为可变阈值处理。
3.1.1全局阈值处理
当物体和背景像素的灰度分布十分明显时,可以用适用于整个图像的全局阈值。
选取阈值的一种方法是目视检查直方图。
如图3.1所示的直方图有两个不同的模式,我们可以很容易地选取一个阈值T来分开他们。
图3.1
在大多数应用中,通常图像之间有较大变化,即使全局阈值是一种合适的方法,对每一幅图像有能力自动估计阈值的算法也是需要的。
下面的迭代算法可用于这一目的:
1.为全局阈值T选择一个初始估计值。
2.用T分割该图像。
这将产生两组像素:
G1由灰度值大于T的所有像素组成,G2由所有小于等于T的像素组成。
3.对G1和G2的像素分别计算平均灰度值(均值)m1和m2.
4.计算一个新的阈值:
T=1/2(m1+m2)
5.重复步骤2到步骤4,直到连续迭代中的T值间的差小于一个预定义的参数ΔT为止。
Matlab程序:
I=imread('E:
/images/bear1.jpg');
f=rgb2gray(I);
T=0.5*(double(min(f(:
))))+double(max(f(:
)));
done=false;
while~done
g=f>=T;
Tnext=0.5*(mean(f(g))+mean(f(~g)));
done=abs(T-Tnext)<0.5;
T=Tnext;
end
T1=T/255;
T2=graythresh(f);
subplot(1,3,1);imshow(f);title('原图像');
subplot(1,3,2);bw1=im2bw(f,T1);imshow(bw1);title('迭代算法处理');
subplot(1,3,3);bw2=im2bw(f,T2);imshow(bw2);title('graythresh函数处理');
执行效果:
3.1.2可变阈值处理
在一幅图像中的每一点(x,y)计算阈值,该阈值是以一个或多个在(x,y)邻域计算的特性为基础的。
虽然这可能是似乎有点费力的处理,但现代算法和硬件允许进行快速的邻域处理,特别是对于像逻辑操作和算术操作这样的普通函数。
Matlab程序:
functiong=localthresh(f,nhood,a,b,meantype)
%Intialize.
f=double(f);
%Computethelocalstandarddeviations.
SIG=stdfilt(f,nhood);
%ComputeMEAN.
ifnargin==5&&strcmp(meantype,'global')
MEAN=mean2(f);
else
MEAN=localmean(f,nhood);%Thisisacustomfunction.
end
%Obtainthesegmentedimage.
g=(f>a*SIG)&(f>b*MEAN);
>>f=imread('E:
/images/ceils.tif');
>>g=localthresh(f,ones(3),30,1.5,'global');
>>subplot(1,2,1);imshow(f);title('原图');subplot(1,2,2);imshow(g);title('局部阈值处理结果')
执行效果:
3.2边缘检测
图像边缘是由于相邻像素间灰度值剧烈变化引起的。
根据微分原理,对于图像中变化比较平坦的区域,因相邻像素的灰度变化剧烈,所以梯度幅值较大,因此用一阶导数幅值的大小可以判断图像中是否有边缘以及边缘的位置。
同理,二阶导数的符号可以用于判断一个边缘像素是在亮的一侧还是在暗的一侧。
常用的边缘检测算子有sobel,prewitt,Roberts,log,zerocrossing,canny等。
Matlab程序:
i=imread('E:
/images/lena.jpg');
I=rgb2gray(i);
bw1=edge(I,'zerocross');
bw2=edge(I,'prewitt');
bw3=edge(I,'canny');
bw4=edge(I,'sobel');
bw5=edge(I,'roberts');
bw6=edge(I,'log');
subplot(2,4,1);imshow(I);title('原图像')
subplot(2,4,2);imshow(bw1);title('zerocross边缘图')
subplot(2,4,3);imshow(bw2);title('prewitt边缘图')
subplot(2,4,4);imshow(bw3);title('canny边缘图')
subplot(2,4,5);imshow(bw4);title('sobel边缘图')
subplot(2,4,6);imshow(bw5);title('roberts边缘图')
subplot(2,4,7);imshow(bw6);title('log边缘图')
执行效果:
3.3区域分割
阈值分割法由于没有或很少考虑空间关系,使多阈值选择受到限制,基于区域的分割方法可以弥补这点不足。
该方法利用的是图像的空间性质,认为分割出来的属于同一区域的像素具有相似的性质,其概念是相当直观的。
传统的区域分割法有区域生长和分裂合并法。
3.3.1区域生长
区域生长是根据预先定义的生长准则来吧像素或子区域集合成较大区域的处理方法。
基本处理方法是以一组“种子”点开始来形成生长区域,即将那些预定义属性类似于种子的领域像素附加到每个种子上(如指定的灰度级或颜色)。
由一个或多个开始点组成的集合的选择通常可基于问题的性质。
当没有先验的信息可用时,一种处理方法是在每一个像素上计算同一组属性,在生长过程期间,这些属性最终将用于把像素分配到区域中。
若这些计算结果显示了一簇值,则应把具有这些特性的像素放在可以作为种子的这些簇的质心。
相似性准则的选择不但依赖于所思考的问题,而且依赖于可用的图像数据类型。
例如,利用人造卫星图像进行陆地分析会严重依赖于颜色的使用。
另外还要考虑像素间的连通性和邻近性,否则有时会出现无意义的结果。
区域生长中的另一个问题是停止规则的公式表达。
一般来说,当不再有像素满足该区域所包含的准则时,生长区域的过程就会停止。
准则(如亮度值,纹理,色彩)实际上是局部的,在区域生长的“历史”中不予考虑。
Matlab代码:
%Segmentbasedonarea,RegionGrowing;
clearall;closeal