图像OTSU阈值分割的程序设计

上传人:工**** 文档编号:494807445 上传时间:2022-12-29 格式:DOC 页数:15 大小:1.03MB
返回 下载 相关 举报
图像OTSU阈值分割的程序设计_第1页
第1页 / 共15页
图像OTSU阈值分割的程序设计_第2页
第2页 / 共15页
图像OTSU阈值分割的程序设计_第3页
第3页 / 共15页
图像OTSU阈值分割的程序设计_第4页
第4页 / 共15页
图像OTSU阈值分割的程序设计_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《图像OTSU阈值分割的程序设计》由会员分享,可在线阅读,更多相关《图像OTSU阈值分割的程序设计(15页珍藏版)》请在金锄头文库上搜索。

1、图像OTSU阈值分割的程序设计 作者: 日期:1 个人收集整理 勿做商业用途1概述数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。数字图像处理研究的内容主要有:(1)图像获取和图像表现阶段主要是把模拟图像信号转化为计算机所能接受的数字形式,以及把数字图像用所需要的形式显示出来.(2)图像复原当造成图像退化的原因已知时,复

2、原技术可用来进行图像的校正。复原技术是基于模型和数据的图像恢复,其目的是消除退化的影响,从而产生一个等价于理想成像系统所获得的图像。(3)图像增强当无法知道与图像退化有关的定量信息时,可以使用图像增强技术较为主观地改善图像的质量。(4)图像分析对图像中的不同对象进行分割、特征提取和表示,从而有利于计算机对图像进行分类、识别、理解或解释。(5)图像重建由图像的多个一维投影重建该图像,可看成是特殊的图像复原技术。(6)图像编码和压缩对图像进行编码的主要目的是为了压缩数据,便于存储和传输。当前的一些编码方法对图像分析和图像加密也有越来越多的应用。MATLAB是矩阵实验室(Matrix Laborat

3、ory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络2 MATLAB常用图像操作函数2.1图像的读写 (1) imreadimread函数用于读入各种图像文件,如:a

4、=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=imread(e:w01。tif); imshow(i)

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

6、程,区域(region)是像素的联通集,是所有像素都有相邻或相邻或相接触像素的集合.联通(connectedness)是指在一个联通集中的任意两个像素之间,存在一条完全由这个集合的元素构成的连通路径.连通路径是一条可在相邻像素间移动的路径。因此,在一个连通集中,可以跟踪在任意两个像素间的连通路径而不离开这个集合。有两种可供选择的连通性准则,如果只依据相邻的像素(上、下、左、右)确定连通,就称为4连通(fourconnect),物体也就被称为是4连通的。因此任意一个像素只有4个邻点可以与它相连通.如果再加上对角相邻的(45度邻点)像素也被认为是连通的,那么,就得到8连通。于是,任意像素有8个邻点

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

8、,它适用于物体与背景有较强对比的景物分割。它计算简单,而且总能用封闭而且连通的边界定义不交叠的区域。当使用阈值规则进行图像分割时,所有灰度值大于或等于某阈值的像素都被判属于物体.所有灰度值小于该阈值的像素被排除在物体之外。于是,边界就成为这样一些内部点的集合,这些点都至少有一个邻点不属于该物体.如果受关注的物体在其内部具有均匀一致的灰度值并分布在一个具有另一个灰度值的均匀背景上,使用阈值方法效果就很好.如果物体与背景的差别在于某些性质而不是灰度值(如纹理等),那么,可以首先把那个性质转换为灰度,然后,利用灰度阈值化技术分割待处理的图像.3。3最大类间方差法(OTSU)最大类间方差法又称为OTS

9、U算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值.它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取最大值,即分离性最大.设X是一幅具有L级灰度级的图像,其中第i级像素为个,其中i的值在0L-1之间,图像的总像素点个数为: 第i级出现的概率为: 在OTSU算法中,以阈值k将所有的像素分为目标和背景两类。其中,类的像素灰度级为0k-1,类的像素灰度级为kL-1。图像的总平均灰度级为: 类像素所占的总面积的比例为: 类像素所占的总面积的比例为: 类像素的平均灰度级为: 类像素的平均灰度级为: 其中, 则类间方差公式为: 令k从0

10、L-1变化,计算在不同k值下的类间方差,使得最大值时的那个k值就是所要求的最优阈值。3。4全局阈值采用阈值确定边界的最简单做法是在整个图像中将灰度阈值的值设置为常数,也就是全局阈值。如果背景的灰度值在整个图像中可合理地看做恒定,而且所有物体与背景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用一个恒定的全局阈值一般会有较好的效果。4实验程序根据题目要求,此程序根据OTSU原理,能完成求取阈值,并与用Matlab的库函数求得的阈值进行比较的功能.为了体现OTSU算法的优越性,更进一步用全局阈值法分割图片,来进行两种方法的对比。function main 主程序clear;close al

11、l; %清除变量,关闭所有窗口name path=uigetfile(.jpg);%获取图片路径及文件名I=imread(path name);%读图I=rgb2gray(I);彩色转黑白while 1 %循环执行disp(0 原图 1 OTSU 2 全局阈值);%提示信息 select=input(请选择:); %选择相应功能 switch select case 0 yuantu(I); %输入0 显示原图case 1 %输入1 OTSU法 fun1(I); case 2 输入2 全局阈值法 fun2(I); otherwise 其他值不处理 endendfunction yuantu(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=1w0; %C1类像素所占面积的比例 if w0=0w0=1 当w0为1或0时提前结束本次循环 continue end u0=dot(0:k1,Ni

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号