图像OTSU阈值分割的程序设计 专业综合实践 武汉理工(共20页)_第1页
图像OTSU阈值分割的程序设计 专业综合实践 武汉理工(共20页)_第2页
图像OTSU阈值分割的程序设计 专业综合实践 武汉理工(共20页)_第3页
图像OTSU阈值分割的程序设计 专业综合实践 武汉理工(共20页)_第4页
图像OTSU阈值分割的程序设计 专业综合实践 武汉理工(共20页)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学专业综合实践课程设计说明书PAGE PAGE 21专业(zhuny)综合课程设计任务书学生(xu sheng)姓名: 专业(zhuny)班级: 电信 指导教师: 周颖 工作单位: 信息工程学院 题 目:图像OTSU阈值分割的程序设计初始条件:提供实验室机房及其matlab软件; 数字图像处理的基本理论学习。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):(1)掌握数字图像分割的基本原理;(2)选择一幅256级的灰度图像,利用matlab设计程序完成以下功能;(3)根据OTSU(最大类间方差法)原理,设计求取阈值的程序(不能使用matlab的库函数)

2、,并与用matlab的库函数求得的阈值进行比较;(4)用求得的阈值对一灰度图片进行分割,并对结果进行分析;(5)要求阅读相关参考文献不少于5篇;(6)根据课程设计有关规范,按时、独立完成课程设计说明书。时间安排: (1) 布置课程设计任务,查阅资料,确定方案 1.5天; (2) 进行编程设计、调试 2天; (3) 完成课程设计报告书、答辩 1.5天;指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录 TOC o 1-3 h z u HYPERLINK l _Toc423965324 1概述1 HYPERLINK l _Toc423965325 2 MATLAB常用图像操作函

3、数2 HYPERLINK l _Toc423965326 2.1图像的读写2 HYPERLINK l _Toc423965327 2.2图像的显示2 HYPERLINK l _Toc423965328 3理论知识3 HYPERLINK l _Toc423965329 3.1图像分割的定义3 HYPERLINK l _Toc423965330 3.2阈值分割4 HYPERLINK l _Toc423965331 3.3最大类间方差法(OTSU)4 HYPERLINK l _Toc423965332 3.4全局阈值5 HYPERLINK l _Toc423965333 4实验程序6 HYPERLI

4、NK l _Toc423965334 5程序运行结果及分析9 HYPERLINK l _Toc423965335 5.1程序运行结果9 HYPERLINK l _Toc423965336 5.2结果分析14 HYPERLINK l _Toc423965337 6心得体会15 HYPERLINK l _Toc423965338 参考文献161概述(i sh)数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生(chnshng)和迅速发展主要受三个因素的影响:一是计算机的发展(fzhn);二是数

5、学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。数字图像处理研究的内容主要有:(1)图像获取和图像表现阶段主要是把模拟图像信号转化为计算机所能接受的数字形式,以及把数字图像用所需要的形式显示出来。(2)图像复原当造成图像退化的原因已知时,复原技术可用来进行图像的校正。复原技术是基于模型和数据的图像恢复,其目的是消除退化的影响,从而产生一个等价于理想成像系统所获得的图像。(3) HYPERLINK /view/286854.htm t _blank 图像增强当无法知道与图像退化有关的定量信息时,可以使用图像增强技术较为主观地改善图

6、像的质量。(4)图像分析对图像中的不同对象进行分割、特征提取和表示,从而有利于计算机对图像进行分类、识别、理解或解释。(5)图像重建由图像的多个一维投影重建该图像,可看成是特殊的图像复原技术。(6)图像编码和压缩对图像进行编码的主要目的是为了压缩数据,便于存储和传输。当前的一些编码方法对图像分析和图像加密也有越来越多的应用。MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。它在数学类科技应用软件中在 H

7、YPERLINK /view/920695.htm t _blank 数值计算方面首屈一指。MATLAB可以进行 HYPERLINK /view/10337.htm t _blank 矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、 HYPERLINK /view/14662.htm t _blank 图像处理、 HYPERLINK /view/1345304.htm t _blank 信号检测、金融建模设计与分析等领域。2 MATLAB常用图像操作(cozu)函数2.1图像(t xin)的读写 (1) imreadim

8、read函数(hnsh)用于读入各种图像文件,如:a=imread(e:w01.tif)注:计算机E盘上要有w01相应的.tif文件。(2) imwriteimwrite函数用于写入图像文件,如:imwrite(a,e:w02.tif,tif)(3) imfinfoimfinfo函数用于读取图像文件的有关信息,如:imfinfo(e:w01.tif)2.2图像的显示(1) imageimage函数是MATLAB提供的最原始的图像显示函数,如:a=1,2,3,4;4,5,6,7;8,9,10,11,12;image(a);(2) imshowimshow函数用于图像文件的显示,如:i=imrea

9、d(e:w01.tif);imshow(i);(3) colorbarcolorbar函数用显示图像的颜色条,如:i=imread(e:w01.tif);imshow(i);colorbar;(4) figurefigure函数用于设定图像显示窗口,如:figure(1);figure(2)3理论(lln)知识(zh shi)3.1图像(t xin)分割的定义图像分割是图像识别和图像理解的基本前提步骤。图像分割算法一般是基于灰度的两个性质之一:不连续性和相似性。第一个性质的应用是基于灰度的不连续变化来分割图像,比如图像的边缘。第二个性质的主要应用是根据事先制定的准则将图像分割为相似的区域,比如

10、阈值分割和区域生长。图像分割是将数字图像划分成互不相交(不重叠)区域的过程,区域(region)是像素的联通集,是所有像素都有相邻或相邻或相接触像素的集合。联通(connectedness)是指在一个联通集中的任意两个像素之间,存在一条完全由这个集合的元素构成的连通路径。连通路径是一条可在相邻像素间移动的路径。因此,在一个连通集中,可以跟踪在任意两个像素间的连通路径而不离开这个集合。有两种可供选择的连通性准则,如果只依据相邻的像素(上、下、左、右)确定连通,就称为4连通(four-connect),物体也就被称为是4连通的。因此任意一个像素只有4个邻点可以与它相连通。如果再加上对角相邻的(45

11、度邻点)像素也被认为是连通的,那么,就得到8连通。于是,任意像素有8个邻点可以与它相连通。这两种中的任意一种都可用,只要具有一致性即可。通常8连通的结果与人的感觉更接近。当人观察景物时,在视觉系统中对景物进行分割的过程是必不可少的。这个过程可以使人看到的并不是一个复杂的景物,而只不过是一种对象的集合体。但是,使用数字图像处理,必须设法分离图像中的对象,把图像分裂成像素集合,每个集合代表一个对象的图像。图像分割可以采用三种不同的原理来实现。在利用区域的方法时,把各像素划归到各个对象或区域中。在边缘方法中,则先确定边缘像素并把它们连接在一起以构成所需的边缘在边界方法中,只需确定存在于区域间的边界。

12、这三种方法使要解决的问题更加具体。3.2阈值(y zh)分割阈值分割是一种区域分割技术,它适用于物体与背景有较强对比的景物分割。它计算简单,而且总能用封闭而且连通的边界定义不交叠的区域。当使用阈值规则(guz)进行图像分割时,所有灰度值大于或等于某阈值的像素都被判属于物体。所有灰度值小于该阈值的像素被排除在物体之外。于是,边界就成为这样一些内部点的集合,这些点都至少有一个邻点不属于该物体。如果受关注(gunzh)的物体在其内部具有均匀一致的灰度值并分布在一个具有另一个灰度值的均匀背景上,使用阈值方法效果就很好。如果物体与背景的差别在于某些性质而不是灰度值(如纹理等),那么,可以首先把那个性质转

13、换为灰度,然后,利用灰度阈值化技术分割待处理的图像。3.3最大类间方差法(OTSU)最大类间方差法又称为OTSU算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取最大值,即分离性最大。设X是一幅具有L级灰度级的图像,其中第i级像素为个,其中i的值在0L-1之间,图像的总像素点个数为: 第i级出现的概率为: 在OTSU算法中,以阈值k将所有的像素分为目标和背景两类。其中,类的像素灰度级为0k-1,类的像素灰度级为kL-1。图像的总平均灰度级为: 类像素(xin s)所占的总面积的

14、比例为: 类像素(xin s)所占的总面积的比例为: 类像素(xin s)的平均灰度级为:类像素的平均灰度级为:其中, 则类间方差公式为:令k从0L-1变化,计算在不同k值下的类间方差,使得最大值时的那个k值就是所要求的最优阈值。3.4全局阈值采用阈值确定边界的最简单做法是在整个图像中将灰度阈值的值设置为常数,也就是全局阈值。如果背景的灰度值在整个图像中可合理地看做恒定,而且所有物体与背景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用一个恒定的全局阈值一般会有较好的效果。4实验(shyn)程序根据题目(tm)要求,此程序根据OTSU原理,能完成求取(qi q)阈值,并与用Matlab

15、的库函数求得的阈值进行比较的功能。为了体现OTSU算法的优越性,更进一步用全局阈值法分割图片,来进行两种方法的对比。主函数的程序代码如下:function mainname path=uigetfile(*.jpg);%获取图片路径及文件名I=imread(path name);%读图 I=rgb2gray(I);%彩色转黑白 while 1 %循环执行disp(0.原图; 1.自编OTSU; 2.库OTSU; 3.人工阈值分割; 4.退出);%提示信息select=input(请选择:); %选择相应功能switch select case 0 original(I); case 1 fun

16、1(I); case 2 fun2(I); case 3 fun3(I); case 4 return; otherwiseendend显示原图(yun t)的程序代码如下:function original(I) %显示(xinsh)原图 figure imshow(I);title(原图(yun t)自编OSTU算法的程序代码如下:function fun1(I);Ni=imhist(I);%计算直方图数组N=sum(Ni); %总像素点个数delamax=0; %类间方差最大值threshold=0; %暂设定阈值for k=2:255 u=dot(0:255,Ni/N); %图像的总平

17、均灰度级 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); thr

18、eshold=k-1; endendBW1=im2bw(I,threshold/255); %阈值分割 figureimshow(BW1), title(自编程序运行结果(ji gu)%显示(xinsh)图片disp(自编程序(chngx)求的的阈值:)%显示提示信息disp(threshold)%显示结果调用OSTU库函数的程序代码如下:function fun2(I)%调用系统函数OTSU阈值分割level=graythresh(I);%调用系统函数计算阈值BW2=im2bw(I,level); %阈值分割figureimshow(BW2),title(调用库函数运行结果)level=ro

19、und(level*255);disp(调用库函数求得的阈值:)disp(level)全局阈值分割的程序代码如下:function fun3(I) %全局阈值分割程序width height=size(I);%获取图片宽高th=input(请输入阈值:); for i=1:width for j=1:height if(I(i,j)th) %灰度小于阈值时则为黑色 BW1(i,j)=0; else % 灰度大于等于阈值时则为白色 BW1(i,j)=1; end endendfigure imshow(BW1),title(人工输入(shr)阈值)5程序运行结果(ji gu)及分析5.1程序运行

20、结果(ji gu)在命令行窗口中输入main,单击回车之后,弹出选择图片的对话框,运行结果如下图所示:在命令行窗口中输入0,单击回车之后,运行结果如下图所示:选择whut.jpg之后,命令行中显示提示信息,运行结果如下图所示:在命令行窗口(chungku)中输入0,单击回车(hu ch)之后,弹出原图像(t xin)的对话框,运行结果如下图所示:在命令行窗口(chungku)中输入1,单击回车(hu ch)之后,命令行窗口中显示计算(j sun)出的阈值,并弹出调用自编OTSU算法处理后的图像的对话框,运行结果如下图所示:在命令行窗口(chungku)中输入2,单击回车(hu ch)之后,命令

21、行窗口中显示计算(j sun)出的阈值,并弹出调用库函数中的OTSU算法处理后的图像的对话框,运行结果如下图所示:在命令行窗口(chungku)中输入3,在命令行窗口中输入阈值,单击回车之后,弹出调用人工(rngng)阈值分割算法处理后的图像的对话框,运行(ynxng)结果如下图所示:在命令行窗口(chungku)中输入4,单击回车(hu ch)之后,程序(chngx)退出,运行结果如下图所示:5.2结果分析由图可以看出自编程序和调用库函数的阈值都是132,得到同样的分割阈值,通过比较经过两种方法处理后对应的结果图,可以看出两种方法处理的效果基本相同,满足设计要求。当使用全局阈值分割时,只要输

22、入的阈值和OTSU算出的阈值一样,即输入132时,处理结果就完全一样。6心得体会课程设计是培养学生综合(zngh)运用所学知识,发现(fxin),提出(t ch),分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,数字图像处理已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次专业课程设计,至今我仍感慨颇多。的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论