课程设计报告
题 目 基于matlab的直方图均衡化程序设计
学生姓名: 学生学号: 系 别: 专 业: 届 别: 指导教师:
电气信息工程学院制
目 录
1、 引言 ····································································································· - 2 - 2、直方图基础 ···························································································· - 2 - 3、直方图均衡化 ························································································· - 3 -
3.1 直方图均衡化的概念 ······················································································································· - 3 - 3.2 直方图均衡化理论 ··························································································································· - 4 - 3.3 Matlab 实现 ··································································································································· - 4 -
4、结论 ····································································································· - 10 - 5、心得体会 ······························································································ - 10 - 参考文献 ··································································································· - 10 -
基于matlab的直方图均衡化程序设计
- 1 -
指导老师:马立宪 电气工程学院:电子信息工程
摘 要:为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换,此文中探讨了直方图的理论基础,直方图均衡化的概念及理论,以Matlab为平台,对某地区遥感TM单波段遥感影像进行直方图均衡化,并给出了具体程序、仿真结果图像、直方图及变换函数。实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。
关键词:图像增强 直方图 均衡化 Matlab
1、 引言
图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。
增强的首要目标是处理图像,使其比原始图像更适合于特定应用。图像增强的方法分为两大类:空间域方法和频域方法。“空间域”一词是指图像平面本身,这类方法是以对图像的像素直接处理为基础的。“频域”处理技术是以修改图像的傅氏变换为基础的。
一般说来,原始遥感数据的灰度值范围都比较窄,这个范围通常比显示器的显示范围小的多。增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。增强主要以图像的灰度直方图最为分析处理的基础。直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。本文主要讨论了空间域的直方图均衡化增强,并用Matlab 进行实验验证。
2、直方图基础
- 2 -
1、灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。确定图像像元的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像元数或该像元数占总像元数的比例值,做出的条形统计图即为灰度直方图。
2、设r 和S 分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。即 0≤r,S≤1。对[0,1]区间内的任一个r 值都可产生一个S 值,且 S=T(r),T(r )为变换函数。T(r)满足下列条件:
a. 在0≤r≤1 区间内是单值单调增加函数; b. 对于0≤r≤1,有0≤T(r)≤1。
条件a 保证灰度级从黑到白的次序,而条件b 确保映射后的像素灰度在允许的范围内。从S 到r 的反变换关系为 r= T-1(S),T-1(S)对r同样满足上述条件。
由概率论知,若Pr(r)和变换函数S=T(r)已知,T-1(S)是单值单调增加函数,则变换后的概率密度函数Ps(S)如下式所示:
Ps(S)=[Pr(r)dr/dS]r=T-1(S)
3、直方图修正从本质上说就是从T(r)入手,调整图像的概率密度函数从而改变图像的特征。
一般来说,如果图像的直方图轮廓线越接近正态分布,则说明图像的亮度接近随机分布,适合用统计方法处理,这样的图像一般反差适中;如果直方图峰值位置偏向灰度值大的一边,图像偏亮;如果峰值位置偏向灰度值小的一边,图像偏暗;峰值变化过陡、过窄,则说明图像的灰度值过于集中,后3 种情况均存在反差小、质量差的问题。直方图分析是图像分析的基本方法,通过有目的地改变直方图形态可改善图像的质量。
3、直方图均衡化
大多数原始的遥感图像由于其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换。本文主要介绍直方图均衡化并进行实验。
3.1 直方图均衡化的概念
- 3 -
直方图均衡化又称直方图平坦化,实质上是对图像进行非线性拉伸,重
新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。 3.2 直方图均衡化理论
假设灰度级为归一化至范围[0,1]内的连续量,并令Pr (r)表示某给定图
像中的灰度级的概率密度函数(PDF),其下标用来区分输入图像和输出图像的PDF。假设我们对输入灰度级执行如下变换,得到(处理后的)输出灰度级s:
rS=T(r)=?P r(w)dw
0式中w 是积分的哑变量。可以看出,输出灰度级的概率密度函数是均匀的,即
a.当0≤s≤1 时,P s(s)=1 b.当s 为其他时,P s(s)=0
换言之,前述变换生成一幅图像,该图像的灰度级较为均衡化,且覆盖
了整个范围[0,1]。 灰度级均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。该变换函数只不过是一个累积分布函数(CDF)。 3.3 Matlab 实现
采用某地区TM 影像的某一波段影像进行直方图均衡化实验,在Matlab 环境下实现增强的目的。
3.31输入以下语句,显示灰度原图像 >> clear all
图像的预处理,读入图像将其灰度化
PS=imread('E:\\My Douments\\2.jpg'); %读入JPG图像文件 imshow(PS) %显示出来 title('输入的JPG图像')
imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存
PS=rgb2gray(PS); %灰度化后的数据存入数组
- 4 -