直方图均衡化的matlab实现_数字图像处理课程论文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

海南大学课程论文

课程名称:数字图像处理

题目名称:直方图均衡化的matlab实现

学院:信息科学技术学院

专业班级:2010级计算机科学与技术专业

直方图均衡化的matlab实现

摘要

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的图像增强方法。为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,本文采用直方图均衡化的图像增强的基本理论原理,在matlab环境下,对数字图像进行直方图均衡化处理。实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。

关键词:直方图,均衡化,matlab

引言

图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。图像增强技术根据增强处理过程所在的空间不同,可分为基于空间域的算法和基于频率域的算法两大类。

基于空间域的算法分为点运算算法和邻域去噪算法。点运算算法即灰度级校正、灰度变换和直方图均衡化等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。

直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,增强效果好。本文讨论了空间域的直方图均衡化增强方法,并用matlab 进行了实现。

1.论文目的

1.1通过直方图以及均衡化的理论原理,用matlab实现直方图均衡化;

1.2 在加深对直方图以及均衡化的理论原理知识理解的基础上,学会运用已

学的知识设计直方图均衡化实验并对结果进行分析,并用实验的结果来说明直方图均衡化的特点和应用。

2.直方图理论

灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。确定图像像元的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像元数或该像元数占总像元数的比例值,做出的条形统计图即为灰度直方图。在matlab中,在imhist函数的返回值中,counts保存了落入每个区间的像素的个数,通过计算counts与图像中像素总数的商可以得到归一化的直方图。

3.直方图均衡化

很多原始的灰度图像由于其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化变换。3.1 直方图均衡化的概念

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

3.2 直方图均衡化理论

考虑连续灰度值,并用变量r 表示待处理图像的灰度,假设日取值范围为[0,L-1],且r=0表示黑色,r=L-1表示白色,用S 分别表示输出图像灰度值。在r 满足这些条件的情况下,有S=T(r),0≤r≤L-1,T(r )为变换函数。对于输入

图像中每个具有r 值的像素值产生一个输出灰度值S 。

假设T (r )满足下列条件:

(a ) 在0≤r≤L-1 上是单调递增函数;

(b ) 当0≤r≤L-1时,0≤T (r )≤L-1。

条件(a)中要求T (r )为单调递增函数是为了保证输出灰度值不少于相应的输入值,防止灰度反变换时产生人为缺陷。条件(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|]=1/(L-1),0≤S≤L -1 (3.2-1)

在图像处理中特别重要的变换函数有如下形式:

S=T(r)=(L-1)⎰r

P r (w)dw (3.2-2)

上式(3.2-2)中变换的离散形式为直方图的均衡变换:

其中 k=0,1,2,…,L-1 (3.2-3)

matlab 图像处理工具箱提供了用于直方图均衡化的函数histeq ,调用语法为:

[J, T] = histeq(I),

其中,I 是原始图像,J 是经过直方图均衡化的输出图像,T 是变换矩阵

4.举例用实验来阐述直方图均衡化在matlab 中实现的过程

4.1在matlab 中绘制归一化直方图

在imhist 函数的返回值中,counts 保存了落入每个区间的像素的个数,通过计算counts 与图像中像素总数的商可以得到归一化的直方图。

00(1)()(1)()k

k k k r j j j j L s T r L p r n MN ==-==-=∑∑

pout.tif原图为:(图4.1-1)

在matlab中输入下列语句绘制直方图

I = imread('pout.tif'); % 读取图像pout.tif

figure; % 打开一个新窗口

[M,N] = size(I); %计算图像大小

[counts,x]=imhist(I,32); % 计算有32个小区间的灰度直方图counts = counts/M/N; % 计算归一化灰度直方图各区间的值stem(x,counts); % 绘制归一化直方图

得到输出直方图为:

相关文档
最新文档