一维最大熵分割汇编.docx
《一维最大熵分割汇编.docx》由会员分享,可在线阅读,更多相关《一维最大熵分割汇编.docx(18页珍藏版)》请在冰豆网上搜索。
一维最大熵分割汇编
摘要
图像分割即通过一些必要的算法把图像中有意义的部分或特征提取出来,将图像分为若干有意义的区域,使得这些区域对应图像中的不同目标,进而能够对所感兴趣的区域进行研究。
通常用全局阈值法:
全局阈值法是指在二值化的过程中只使用一个全局阈值T的方法。
它将图像的每个像素的灰度值与T进行比较,若大于T,则取为前景色(白色);否则取为背景色。
典型的全局阈值法包括Otsu方法、最大熵方法等。
为了满足图像处理应用系统自动化及实时性要求,图像二值化的阈值选择最好由计算机自动来完成。
一维最大熵分割法首先要将彩色图像转换成灰度图像,利用Matlab仿真平台的函数将图像转换成灰度图像,再从灰度图像中的直方图找出最大熵对灰度图像进行分割变成二值图像。
关键词:
Matlab仿真平台;数字图像处理;一维最大熵分割
6.4分析....................................................................................................................14
一维最大熵分割法
1课程设计目的
(1)熟悉和掌握MATLAB程序设计方法。
(2)学习和掌握MATLAB图像处理工具箱。
(3)查阅相关资料并分析,掌握一维最大熵分割法的主要思路。
(4)培养独立分析和解决问题的能力,学会撰写课程设计的总结报告。
(5)善于总结和改进方案,提高可实施性和高效性。
2课程设计要求
(1)了解图像变换的意义和手段。
(2)熟悉最大熵和二值化的基本性质。
(3)通过本实验掌握利用MATLAB编程实现数字图像处理。
(4)理解图像分割的原理,了解其应用,掌握最大熵和二值化分割的方法。
3设计原理
3.1一维最大熵分割法的相关知识
3.1.1图像二值化原理
图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。
图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。
在不同的应用中,阈值的选取决定着图像特。
征信息的保留。
因此,图像二值化技术的关键在于如何选取阈值[1]。
3.1.2最大熵原理
最大熵原理:
最大熵原理是在1957年由E.T.Jaynes提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布。
因为在这种情况下,符合已知知识的概率分布可能不止一个。
我们知道,熵定义的实际上是一个随机变量的不确定性,熵最大的时候,说明随机变量最不确定,换句话说,也就是随机变量最随机,对其行为做准确预测最困难。
图像分割中最大熵的引入:
在图像分割中若假定以灰度级T分割图像,图像中低于T灰度级的像素点构成目标物体(O),高于灰度级T的像素点构成背景(B)。
O区:
i=1,2,3,...,t(3.1.1)
B区:
i=t+1,t+2,....,L-1(3.2.2)
上式(3.1.1)和(3.2.2)中所示,
i=1,2,3,……,t(3.2.3)
这样对于数字图像中的目标和背景区域的熵分别为:
i=1,2,3,...t(3.2.4)
i=t+1,t+2,...L-1(3.2.5)
其中Ni为图像中灰度级为i的像素点个数,Nt为灰度级从0~t的像素点总和,N为图像总像素点,t为假定灰度阈值T。
令
.则根据最大信息熵理论在已知条件下要对图像做出分割的最佳决策即为最接近实际图像分割的理想决策[2]。
3.1.3图像分割的研究背景
在一幅目标图像下,人们往往只是关注其中的一个或者几个目标,而这些目标必然会占据一定的区域,并且与周围其他目标或背景在一些特征上会有相应的差别。
但是,很多时候这些差别会非常的细微,以至于人眼很难发觉,这就需要用一定的技术对图片做一些处理。
而计算机图像处理技术的发展,很好地解决了这一难题,使得人们可以利用计算机技术来协助理这些信息,例如指纹识别、车牌识别以及医学影像的鉴别操作等方向。
图像分割是图像识别的基础,其通过一些必要的算法把图像中有意义的部分或特征提取出来,将图像分为若干有意义的区域,并形成数字特征,这些区域对应图像中的不同目标。
这些具有某种特征的单元成为图像的基元,这种经过处理的基元更容易被快速处理。
目前,数以千计的研究文献和文章提出了许许多多的图像分割算法,不同种类的图像、不同的应用要求和应用领域所需要提取出的图像特征是不相同的,所以并不存在普遍适用的最优方法,只能根据图像特征选择与值相适应的方法[3]。
3.1.4图像分割的基本原理
图像分割是根据图像的直方图和结构特性或者一些具体的应用需求将图像划分成两个或多个互不相交的子区域的过程,这些子区域是在特定意义下的具有相同属性的像素的连通集合。
例如,一幅图像中不同目标物体所占的图像区域、背景所占的背景区域等都属于这样的连通集合概念。
对图像分割的定义有多种不同的解释,人们普遍接受的是通过集合定义的图像分割。
用集合R表示整个图像区域,那么对整个图像的分割可以等价于将集合R分成n个满足以下准则的区域:
对当i=1,2,3,...,n时,Ri是相连的;
对
有
对
;有
对i=1,2,3,...,n;有
目前提出的图像分割方法很多,在此分为三种不同的途径对其进行分类:
(1)以物体的的边界为对象进行分割;
(2)先检测边缘像素,再将边缘像素连接起来形成分割;
(3)以区域为对象进行分割,根据图像的灰度、色彩、变换关系或组织结构等方面的特征相似性来划分图像的子区域并将各像素划分到特定区域。
上述这些方法是互补的,不同的场合使用不同的方法,或者综合各个方法已达到最佳的分割效果[4]。
3.2MATLAB简介
3.2.1基本功能
MATLAB是很实用的数学软件它在数学类科技应用软件中在数值运算方面首屈一指。
MATLAB可以进行运算、绘制函数和数据、实现算法、创建用户界面、连接接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
3.2.2MATLAB产品应用
MATLAB产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算
●工程与科学绘图
●控制系统的设计与仿真
●数字信号处理技术
●通讯系统设计与仿真
3.2.3MATLAB特点
●此高级语言可用于技术计算
●此开发环境可对代码、文件和数据进行管理
●交互式工具可以按迭代的方式探查、设计及求解问题
●二维和三维图形函数可用于可视化数据
●各种工具可用于构建自定义的图形用户界面
3.2.4MATLAB系列工具优势
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。
这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。
包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。
而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。
简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。
用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等[5]。
4课程设计分析
4.1一维最大熵分割流程图与分析
图4.1.1一维最大熵分割流程图
4.1.1流程图分析
从计算机中选取要进行分割的图片,输入到Matlab程序中,利用Matlab函数rgb2gray对图片进行灰度转换,再利用全局阈值法的算法:
找出灰度图像中的一维最大熵,即th:
根据最大熵对图像进行二值化处理,最后输出结果图像;
4.2图像的二值化算法
灰度图(Grayscale)是指只含亮度信息,不含色彩信息的图像,就像我们平时看到亮度由暗到明的黑白照片。
因此,要表示灰度图,就需要把亮度值进行量化。
通常划分成0到255共256个级别,0最暗(全黑),255最亮(全白)。
BMP格式的文件中并没有灰度图这个概念,但是我们可以很容易地用BMP文件来表示灰度图。
方法是用256色的调色板,只不过这个调色板有点特殊,每一项的RGB值都是相同的,也就是说RGB值从(0,0,0),(l,l,1)一直到(255,255,255)。
(0,0,0)是全黑色,(255,255,255)是全白色,中间的是灰色。
这样,灰度图就可用256色图来表示。
灰度图使用比较方便。
首先RGB的值都一样;其次,图像数据即调色板索引值,也就是实际的RGB的亮度值;另外因为是256色的调色板,所以图像数据中的一个字节代表一个像素。
如果是彩色的256色图,图像处理后有可能会产生不属于这256种颜色的新颜色,所以,图像处理一般采用灰度图。
在本中会介绍将彩色图像转化为灰度图像的方法(图像灰度化处理)。
另外,本文所做的程序,如不做特殊说明,都是针对256级灰度图的。
图像灰度化由于实验使用的是彩色数码相机,所以最初输入计算机的是24位真彩色图像,而在本课题的后续研究中,如前面所述,主要是对灰度图像进行处理。
因此有必要将24位彩色图像转化为灰度图。
为了用计算机来表示和处理颜色,必须用定量的方法来描述颜色,即建立颜色模型,而颜色模型的基础是建立在色度学理论上的。
色度学理论是T.Young在1802年提出的,其基本内容是:
任何色彩均可以由三种不同的基本颜色按不同的比例混合而成,即:
(4.1)
其中
为三原色(又称三基色),a,b,c为三种原色的权值(三原色的比例或浓度),C为所合成的颜色,可为任意颜色。
色彩与亮度均是一种视觉感受,这种感受分别产生红、绿、蓝的视觉感受。
实验已经证明,由对应三种视敏细胞而产生红、绿、蓝三种颜色作为任何颜色的基本色的理论称为三基色原理。
原理指出:
(l)自然界的可见颜色都可以用三种基色按一定比例混合得到;反之,任意一种颜色都可以分解为三种颜色。
(2)作为原色的三种颜色应该相互独立,即其中任何一种都不能用其它两种混合得到。
(3)三原色之间的比例直接决定混合色调的饱和度。
(4)混合色的亮度等于各原色的亮度之积。
在目前提出的多种颜色模型中,RGB颜色模型是实际应用中最多的一种。
我们在前面己经做了一些简单而具有代表性的介绍,我们在此的主要任务是如何将彩色图像转化为灰度图像,即图像灰度化处理。
灰度化就是替彩色位图的R,G,B三个分量找一个合适的、相等的值,以便将其转换为灰度图的过程。
由于R,G,B的取值范围是0~255,所以灰度的级别只有256级,即灰度图像仅能表现256种颜色(灰度)。
常用的灰度化处理方法有最大值法、平均值法和加权平均值法。
(l)最大值法:
灰度值等于R,G,B分量的最大值,
。
最大值法会形成亮度很高的图像。
(2)平均值法:
灰度值等于R,G,B分量的平均值,
。
平均值法会形成比较柔和的图像。
(3)加权平均值法:
根据重要性或其他指标给R,G,B赋予不同的权值,并使,R,G,B的值平均加权,即
,式中
。
分别为R,G,B的加权系数,且
。
取不同的值使用该方法将形成不同的灰度图像。
由于人眼对绿色敏感度最高,对红色的敏感度次之,对蓝色敏感度最低,因此使
将得到合理的灰度图像,实验和理论证明,当
时能得到最适合人眼观察的图像。
本文采用加权平均值灰度化法处理图像,所采用的加权系数为:
,由于灰度图像仅能显示256色灰度级,因此对真彩色图像(24位)进行灰度化处理时,首先要将其转化为8位位图,然后按加权平均值法进行灰度化处理。
先将原彩色图变为灰度图。
灰度图像是指只含亮度信息,不含色彩信息的图像,将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
再将灰度图二值化,图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像[6]。
4.3一维最大熵分割法
一维最大熵分割法的思想是统计图像中每一个灰度级出现的概率,计算该灰度级的熵[7]
(4.2)
假设以灰度级T分割图像,图像中低于T灰度级的像素点构成目标物体(O),高于灰度级T的像素点构成背景(B)。
O区:
i=1,2,3,...,t(4.2.1)
B区:
i=t+1,t+2,....,L-1(4.2.2)
上式(3.1.1)和(3.2.2)中所示,
i=1,2,3,……,t(4.2.3)
这样对于数字图像中的目标和背景区域的熵分别为:
i=1,2,3,...t(4.2.4)
i=t+1,t+2,...L-1(4.2.5)
对图像中的每一个灰度级分别求取
,选取使w最大的灰度级作为分割图像的阈值,这就是一维最大阈值图像分割法[8]。
5一维最大熵分割法的源代码及分析
5.1彩色图像变换为灰度图像的程序代码
clc
clear
E=imread('a.jpg');%读取图片
figure,imshow(E);%显示图片
title('原图像');%给图片命名
K=rgb2gray(E);%给彩色图片做灰度变换
figure,imshow(K);%显示变换后的图片
title('灰度图像');
5.2一维最大熵分割图像的程序代码
vHist=imhist(K);
[m,n]=size(K);
p=vHist(find(vHist>0))/(m*n);%求每一不为零的灰度值的概率
Pt=cumsum(p);%计算出选择不同t值时,A区域的概率
Ht=-cumsum(p.*log(p));%计算出选择不同t值时,A区域的熵
HL=-sum(p.*log(p));%计算出全图的熵
Yt=log(Pt.*(1-Pt)+eps)+Ht./(Pt+eps)+(HL-Ht)./(1-Pt+eps);%计算出选择不同t值时,判别函数的值
[a,th]=max(Yt);%找到熵最大的值
segImg=(K>th);%显示二值化后的图像
figure,imshow(segImg);
title('一维最大熵分割方法处理后的图像');
6仿真与结果分析
6.1采集的图像
如图6-1所示,是采集的宠物猫的图片,该图像经MatLab显示后如图所示:
图6-1原图像
6.2灰度变换后的图像
然后,将采集到的彩色图像变换为灰度图像,即为黑白的图像,图像只含亮度信息,不含色彩信息,变换后的灰度图像如图6-2所示:
图6-2灰度变换后的图像
6.3一维最大熵分割后的图像
将灰度图像变换为二值图像,使二值化后的图像呈现出明显的黑白效果,背景和前景分割比较明显,分割效果比较理想,一维最大熵分割方法处理后的图像如图6-3所示:
图6-3一维最大熵分割法处理后
6.4分析
用上述的方法进行实验,得到的二值化结果如图5-3所示,从仿真的结果来看,图5-2是将彩色图像变换成灰度图像,各灰度变化级变化不明显,图5-3用最大熵的方法二值化后的图像比较清晰,背景和前景分割比较明显,分割效果比较理想,方法也非常简单。
通过实验也可以知道阈值的选取最为重要,阈值选取是图像处理与分析的基础,图像二值化的阈值选择做最好由计算机自动来来完成。
本实验很难,特别是阈值选取方法非常重要,一个好的阈值选取可以明显提高二值化效果,对于不同质量的图像有着令人满意的处理效果。
结论
此次课程设计是将原彩色图像变为二值化的图像,通过一维最大熵分割法对图像进行分割达到预期目的。
图像分割即通过一些必要的算法把图像中有意义的部分提取出来,将图像分为若干有意义的区域,使得这些区域对应图像中不同目标,进而能够对所感兴趣的区域进行研究。
而此次课程设计运用全局阈值法,它是指在二值化过程中只使用一个全局阈值T的方法。
它将图像的每个像素的灰度值与T进行比较,若大于T,则取为前景色(白色);否则取为背景色。
典型的全局阈值法包括Otsu方法、最大熵方法等。
为了满足图像处理应用系统自动化及实时性要求,图像二值化的阈值选择最好由计算机自动来完成。
一般有平均灰度值法、大律法、边缘算子法等,本实验用的是平均灰度值法。
本实验结果可知二值化后的图像比较清晰,背景和前景分割比较明显,分割效果比较理想,方法和操作都很简单。
比较适合现实生活中的使用。
参考文献
[1]阮秋琦.数字图像处理学.北京:
电子工业出版社,2001.P102-P124
[2]龚声蓉,刘纯平,王强等.数字图像处理与分析北京:
清华大学出版社,2006.P56-P58
[3]容观澳.计算机图像处理北京:
清华大学出版社,2000.P112-P120
[4]贾永红.计算机图像处理与分析武汉:
武汉大学出版社,2001.P38-P45
[5]陈桂明.应用MATLAB语言处理数字信号与图像处理北京:
科学出版社,2000.P202-P204
[6]夏德深,傅德胜.计算机图像处理及应用南京:
东南大学出版社,2004.P89-P92
[7]姚敏.计算机图像处理北京:
机械工业出版社,2006.P106-P115
[8]吴健康.数字图像分析北京:
邮电出版社,1989.P58-P62