版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学专业综合课程设计 目 录摘要1原理与实现11.1图像分割11.2阈值分割11.3 OTSU算法22 设计实现程序43 程序运行结果与分析73.1程序运行结果73.2 结果分析94 心得体会11参考文献12 摘 要图像分割是图像识别和图像理解的基本前提步骤。图像分割算法一般是基于灰度的两个性质之一:不连续性和相似性。图像的阈值分割是基于图像的相似性根据事先制定的准则将图像分割为相似的区域。图像分割的作用是把反映物体真实情况的、占据不同区域的、具有不同特性的目标区分开来,以便计算各个目标的数字特征。图像分割质量的好坏直接影响后续图像处理的效果,甚至决定其成败,因此,图像分割的作用至关重
2、要。本设计主要是使用阈值分割法中的最大类间方差法(OTSU)的原理来将图像进行不使用库函数和使用库函数的阈值分割,并将两种方法的阈值显示出来进行比较,同时显示不同阈值情况下的图像结果。关键词:图像分割 阈值分割 最大类间方差法 1原理与实现1.1图像分割 数字图像处理的目的之一是图像识别, 而图像分割是图像识别工作的基础。图像分割是将一幅图像分解成若干互不交叠的、有意义的、具有相同性质的区域。这些区域互不交叠, 每一个区域内部的某种特性或特征相同或接近, 而不同区域间的图像特征则有明显差别, 即同一区域内部特性变化平缓, 相对一致, 而区域边界处则特性变化比较剧烈。区域内是一个所有像素都有相邻
3、或相接触像素的集合, 是像素的连通集。在一个连通集中任意两个像素之间, 都存在一条完全由这个集合的元素构成的连通路径。图像分割的基础是像素间的相似性和不连续性。所谓“相似性”是指在某个区域内像素具有某种相似的特性, 如灰度一样, 纹理相同;所谓“不连续性”是指特性不连续, 如灰度值突变等。图像分割的方法有多种, 依据工作对象来分, 可分为点相关分割和区域相关分割; 按算法分类, 可分为阈值法、界限检测法、匹配法、跟踪法等。然而大多数分割方法都不能将图像完美的分割,具体处理时总是在各种约束条件之间找一种合理的平衡。1.2阈值分割 阈值处理是一种区域分割技术, 它适用于物体与背景有较强对比的景物分
4、割。 它主要是利用图像中要提取的目标物体和背景在灰度上的差异, 选择一个合适的阈值, 通过判断图像中的每一个像素点的特征属性是否满足阈值的要求来确定图像中该像素点应该属于目标区还是应该属于背景区域, 从而产生二值图像。它计算简单, 而且总能用封闭而且连通的边界定义不交叠的区域。 在使用阈值法进行分割技术时, 阈值的选取成为能否正确分割的关键, 若将所有灰度值大于或等于某阈值的像素都被判属于物体, 则将所有灰度值小于该阈值的像素被排除在物体之外, 如果阈值选取得过高, 则过多的目标区域将被划分为背景, 相反如果阈值选取得过低, 则过多的背景将被划分到目标区。因此, 边界就由这样一些内部点的集合组
5、成, 这些点都至少有一个邻点不属于该物体。 由于物体和背景以及不同物体之间的灰度级有明显的差别, 因此, 在图像的灰度级直方图中会呈现明显的峰值。当图像灰度直方图峰型分布明显时, 常以谷底作为门限候选值。所以只要适当地选择阈值, 即可对图像进行分割, 因而成为一种简单而广泛应用的方法。1.3 OTSU算法 OTSU算法,又称最大类间方差阈值选择法,是一种自适应的阈值确定的方法。它是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小
6、。 方法一:不使用库函数的算法 设X是一幅具有L级灰度级的图像,其中第i级像素为个,其中i的值在0L-1之间,图像的总像素点个数为: (1) 第i级出现的概率为: (2) 在OTSU算法中,以阈值k将所有的像素分为目标和背景两类。其中,类的像素灰度级为0k-1,类的像素灰度级为kL-1。 图像的总平均灰度级为: (3) 类像素所占的总面积的比例为: (4) 类像素所占的总面积的比例为: (5) 类像素的平均灰度级为: (6) 类像素的平均灰度级为: (7) 其中, (8) (9) 最大类间方差的公式为: (10) 令k从0L-1变化,计算在不同k值下的类间方差,使得最大值时的那个k值就是所要求
7、的最优阈值。 方法二:使用库函数的算法 在matlab工具箱提供的graythresh函数求取阈值采用的就是OTSU算法,使用库函数求取阈值就是调用graythresh函数选择阈值。2 设计实现程序 依据本次课程设计的要求,在程序设计中,我用了非库函数和库函数两种方法进行图像的阈值求取,然后将图像进行人工选择不同阈值的阈值分割,以便进行对比。由于要实现的功能不止一个,程序比较复杂,所以为了方便程序的阅读与理解,我将程序进行分模块编写。具体程序如下:function main %主程序clear;close all; %清除变量,关闭所有窗口name path=uigetfile('ed
8、x1102.jpg'); %获取图片路径及文件名I=imread(path name); %读图I=rgb2gray(I); %彩色转黑白while 1 %循环执行disp('0 原图 1 OTSU 2 全局阈值'); %显示功能提示信息 select=input('请选择:'); %选择相应功能 switch select case 0 %输入0 显示原图 yuantu(I); case 1 %输入1 OTSU法 fun1(I); case 2 %输入2 全局阈值法 fun2(I); otherwise %其他值不处理 endendfunction y
9、uantu(I) %显示原图figureimshow(I);title('原图')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
10、-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; endendBW1=im2bw(I,threshold/255); %阈值分割figureimshow(BW1),title('自编程序运行结果') %显示图片disp('自编程
11、序求的的阈值:') %显示提示信息disp(threshold) %显示结果%调用系统函数OTSU阈值分割level=graythresh(I); %调用系统函数计算阈值BW2=im2bw(I,level); %阈值分割figureimshow(BW2),title('调用库函数运行结果')level=round(level*255); %四舍五入计算调用系统函数的阈值disp('调用库函数求得的阈值:')disp(level)function fun2(I) %阈值分割程序 width height=size(I); %获取图片宽高th=input(&
12、#39;请输入阈值:');for i=1:width for j=1:height if(I(i,j)<th) %灰度小于阈值时则为黑色 BW1(i,j)=0; else % 灰度大于等于阈值时则为白色 BW1(i,j)=1; end endendfigureimshow(BW1),title('全局阈值')3 程序运行结果与分析3.1程序运行结果 运行matlab,输入程序运行,按照要求输入指令得到以下结果: 图1 命令窗口运行结果 图2 显示原图 图3 自编程序运行结果 图4 调用库函数运行结果 图5 人工选择阈值为156的运行结果 图6 人工选择阈值为120
13、的运行结果 图7 人工选择阈值为180的运行结果3.2 结果分析 由图1结果显示可以看出自编程序和调用库函数的阈值都是156,得到同样的分割阈值,由图3和图4两幅处理后的结果图也可以看出,处理的效果基本相同,满足设计要求。 当使用全局阈值法时,只要输入的阈值和OTSU算出的阈值一样,即输入156时,如图5可见处理结果就完全一样。当输入的阈值高于或低于156时,处理结果便产生了差异。由图6和图7可以看到,当输入阈值为120时,目标图像比例明显增加,背景图像明显减少;当输入阈值为180时,目标图像则减少,背景图像增加。这正验证了如果阈值选取得过高, 则过多的目标区域将被划分为背景, 相反如果阈值选
14、取得过低, 则过多的背景将被划分到目标区。4 心得体会由于这一学期我们基本没有什么课程学习,所以在拿到这次课程设计的题目后,我认真的回顾了一遍课本上的知识,尤其重点复习了图像分割这一方面。我这次课程设计的重点是用最大类间方差阈值选择法(OTSU),要求不使用库函数和使用库函数两种方法实现,并且针对不同的阈值进行阈值分割的结果进行分析。本次课设的难度并不大,实现原理比较简单,但是编程的细节要注意,我在编程的过程中对有些函数不太熟悉,常常要停顿下来查阅资料,所以我决定先不急于做出结果,磨刀不误砍柴工,我查阅了很多相关的资料,认真学习了matlab的使用和一些函数的基本应用,总算对课程设计要求的知识学习达到了一定的标准,最后顺利的完成了课设要求。通过本次课程设计,我对图像分割有了深入的了解,也加深了对matlab的掌握程度,在学到科学知识的同时,我也学到了做事的道理:不要急于求成,要一步一个脚印,理论和时间都很重要,在实践遇到困难时,我们要加强自己的理论水平,用理论来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学心理学与临床人文融合模式
- 职业规划文章写作指南
- 招投标智库专家入库考试卷(C卷)-含答案解析(法规+实操)
- 虚拟行业职业规划
- 医学影像云与电子病历整合
- 二次根式 课件 2025-2026学年人教版数学八年级下册
- 医学影像AI模型的隐私保护与诊断效能优化
- 医学大数据摘要的海报可视化策略
- 浙江省宁波市“十校”2026届高一生物第二学期期末联考模拟试题含解析
- XX村防汛抗旱应急预案(2026年修订版)
- 手术室废物的管理课件
- 公安心理素质测试题及答案
- GB/T 31329-2025循环冷却水节水技术规范
- 广西普法考试试题及答案2025年
- 临床研究员项目风险评估与应对预案
- 矿业安全试题及答案
- 商铺买卖合同(标准版)
- 《金控集团全面风险管理手册》(2025年版)
- 环境材料概论课件第二章吸附材料
- 【新疆、西藏】2025年高考全国卷理综化学高考真题(原卷版)
- 《人工智能概论高职》全套教学课件
评论
0/150
提交评论