《基于matlab的直方图均衡化程序设计》由会员分享,可在线阅读,更多相关《基于matlab的直方图均衡化程序设计(17页珍藏版)》请在金锄头文库上搜索。
1、课程设计报告题 目 基于 MATLAB 的直方图均衡化程序设计 学生姓名: 学生学号: 系 别: 电气工程学院 专 业: 电子信息工程 届 别: 2010 指导教师: 马立宪 电气信息工程学院制基于基于 MATLABMATLAB 的直方图均衡化程序设计的直方图均衡化程序设计淮南师范学院电气信息工程学院 2010 届电子信息工程专业课程设计报告- 1 -指导老师:马立宪电气工程学院:电子信息工程摘摘 要要:为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换,此文中探讨了直方图的理论基础,直方图均衡化的概念及理论,以
2、MATLAB 为平台,对某地区遥感 TM 单波段遥感影像进行直方图均衡化,并给出了具体程序、仿真结果图像、直方图及变换函数。实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。 关键词关键词:图像增强 直方图 均衡化 MATLAB 1 1、 课程设计的任务与要求课程设计的任务与要求1.11.1、课程设计的任务、课程设计的任务设计一个程序,实现图像直方图的均衡化1.21.2、课程设计的要求、课程设计的要求能够实现直方图的均衡化,使输出图像增强1.31.3、课程设计的研究基础、课程设计的研究基础图像
3、增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。 增强的首要目标是处理图像,使其比原始图像更适合于特定应用。图像增强的方法分为两大类:空间域方法和频域方法。 “空间域”一词是指图像平面本身,这类方法是以对图像的像素直接处理为基础的。 “频域”处理技术是以修改图像的傅氏变换为基础的。一般说来,原始遥感数据的灰度值范围都比较窄,这个范围通常比显示器的显示范围小的多。增强处理可将其灰度范围
4、拉伸到 0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。增强主要以图像的灰度直方图最为分析处理的基础。直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。本文主要讨论了空间域的直方图均衡化增强,并淮南师范学院电气信息工程学院 2010 届电子信息工程专业课程设计报告- 2 -用 MATLAB 进行实验验证。 2 2、MATLABMATLAB 基本知识介绍基本知识介绍2.12.1、MATLABMATLAB 的概述的概述MATLAB 是 MATrix LABoratory(“矩阵实验室” )的缩写,是由美国MathWorks 公司开发的集数值计算、符号计
5、算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同的事情简捷得多。MATLAB 包 括拥有数百个内部函数的包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使MATLAB 广受用户欢迎.除内
6、部函数外,所有 MATLAB 主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包2.22.2、MATLABMATLAB 产生的历史背景产生的历史背景在 70 年代中期,CleveMoler 博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK 和 LINPACK 的 FORTRAN 子程序库.EISPACK 是特征值求解的FOETRAN 程序库,LINPACK 是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.到 70 年代后期,身为美国 NewMexico 大学计算机系系主任的CleveMoler,在给学生讲授线性
7、代数课程时,想教学生使用 EISPACK 和 LINPACK程序库,但他发现学生用 FORTRAN 编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写 EISPACK 和 LINPACK 的接口程序.CleveMoler 给这个接口程序取名为 MATLAB,该名为矩阵(matrix)和实验室 labotatory)两 个 英 文 单 词 的 前 三 个 字 母 的 组 合.在 以 后 的 数 年里,MATLAB 在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传.1983 年春天,Cleve Moler 到 Standford 大学讲学,MATLAB 深深地吸引了
8、工程师JohnLittle.JohnLittle 敏锐地觉察到 MATLAB 在工程领域的广阔前景.同年,他和 CleveMoler,SteveBangert 一起,用 C 语言开发了第二代专业版.这一代的淮南师范学院电气信息工程学院 2010 届电子信息工程专业课程设计报告- 3 -MATLAB 语言同时具备了数值计算和数据图示化的功能.1984 年,CleveMoler 和John Little 成立了 MathWorks 公司,正式把 MATLAB 推向市场,并继续进行MATLAB 的研究和开发.在当今 30 多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类.一类是数
9、值计算型软件,如 MATLAB,Xmath,Gauss 等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple 等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks 公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件 MATLAB.经过多年的国际竞争,MATLAB 以经占据了数值软件市场的主导地位.在 MATLAB 进入市场前,国际上的许多软件包都是直接以 FO
10、RTRANC 语言等编程语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在 MATLAB 问世不久的 80 年代中期,原先控制领域里的一些软件包纷纷被淘汰或在 MATLAB 上重建。时至今日,经过 MathWorks 公司的不断完善,MATLAB 已经发展成为适合多学科,多种工作平台的功能强大大大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB 已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程
11、的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB 被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB 一定会盛行起来。可以说,无论你从事工程方面的哪个学科,都能在 MATLAB 里找到合适的功能。淮南师范学院电气信息工程学院 2010 届电子信息工程专业课程设计报告- 4 -3 3、直方图基础、直方图基础 1、灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。确定图像像元的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像元数或该像元数占总像元数
12、的比例值,做出的条形统计图即为灰度直方图。 2、设 r 和 S 分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。即 0r,S1。对0,1区间内的任一个 r 值都可产生一个 S 值,且 S=T(r) ,T(r )为变换函数。T(r)满足下列条件: a. 在 0r1 区间内是单值单调增加函数; b. 对于 0r1,有 0T(r)1。 条件 a 保证灰度级从黑到白的次序,而条件 b 确保映射后的像素灰度在允许的范围内。从 S 到 r 的反变换关系为 r= T-1-1(S) ,T-1-1(S)对 r 同样满足上述条件。 由概率论知,若 Pr(r)和变换函数 S=T(r)已知,T-1-1(S)是
13、单值单调增加函数,则变换后的概率密度函数 Ps(S)如下式所示: Ps(S)=Pr(r)dr/dSr=T-1(S)3、直方图修正从本质上说就是从 T(r)入手,调整图像的概率密度函数从而改变图像的特征。一般来说,如果图像的直方图轮廓线越接近正态分布,则说明图像的亮度接近随机分布,适合用统计方法处理,这样的图像一般反差适中;如果直方图峰值位置偏向灰度值大的一边,图像偏亮;如果峰值位置偏向灰度值小的一边,图像偏暗;峰值变化过陡、过窄,则说明图像的灰度值过于集中,后 3 种情况均存在反差小、质量差的问题。直方图分析是图像分析的基本方法,通过有目的地改变直方图形态可改善图像的质量。 4 4、直方图均衡
14、化、直方图均衡化 大多数原始的遥感图像由于其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换。本文主要介绍直方图均衡化并进行实验。 淮南师范学院电气信息工程学院 2010 届电子信息工程专业课程设计报告- 5 -4.14.1 直方图均衡化的概念直方图均衡化的概念 直方图均衡化又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低
15、,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。 4.24.2 直方图均衡化理论直方图均衡化理论 假设灰度级为归一化至范围0,1内的连续量,并令 Pr (r)表示某给定图像中的灰度级的概率密度函数(PDF) ,其下标用来区分输入图像和输出图像的PDF。假设我们对输入灰度级执行如下变换,得到(处理后的)输出灰度级 s: S=T(r)=P r(w)dw r0式中 w 是积分的哑变量。可以看出,输出灰度级的概率密度函数是均匀的,即 a.当 0s1 时,P s(s)=1 b.当 s 为其他时,P s(s)=0 换言之,前述变换生成一幅图像,该图像的灰度级较为均衡化,且覆盖了整个范围0,1。 灰度级均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。该变换函数只不过是一个累积分布函数(CDF) 。 4.34.3 MATLABMATLAB 实现实现 采用某地区 TM 影像的某一波段影像进行直方图均衡化实验,在 MATLAB 环境下实现增强的目的。 4.314.31、图、图 1 1 为为原图像原图像 clear all图像的预处理,读入图像将其灰度化PS=imread(E:My Douments2.jpg); %读入 JP