关于Matlab中直方图均衡化法图像增强的研究
摘要:数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。Matlab强大的运算和图形展示功能使得数字图像处理技术在各个领域上都有了比较广泛的应用。图像增强是数字图像的预处理 ,对图像整体或局部特征能有效地改善。我们以一个灰度图像为例,了解基于直方图的均衡化处理的图像增强技术基本原理,给出了相关推导公式和算法;同时,用matlab语言实现了直方图均衡化,处理,并给出了具体程序、实验结果图像及直方图。结果表明 ,直方图均衡化处理能有效改善灰度图像的对比度差。
关键词:直方图 灰度 均衡化 统计概率
1.引言
视觉是人类最重要的感知手段,图像视觉的基础。图像处理是计算机信息处理的重要内容。图像可以是可视的和非可视的,也可以是抽象的和实际的。一般情况下,一幅图像是另一种事物的表示,它包含了有关其所表示物体的描述信息。可以包括人眼看见的方式显示这一信息,也可以包括人眼不能感知的形式表示信息。图像是器所表示物体信息的一个浓缩或概括。实际上,图像与光学密切相关,即与光的照射、反射密切相关。因此,从理论上来说,一幅图像可以被看作为空间各个坐标点上光的强度的集合。光的强度与光的波长有关。
在图像形成、传输或变换的过程中 ,由于受到其它客观因素诸如系统噪声、曝光不足或过量、相对运动等影响,获取图像往往会与原始图像之间产生某种差异。退化后的图像通常模糊不清或者经过机器提取的信息量减少甚至错误 ,因此必须对其采取一些手段进行改善。
2.直方图均衡化的理论基础
2.1直方图基础
数字图像的直方图是作为图像每一个灰度级的统计概率分布 ,它提供了图像灰度分布的概貌 ,直方图增强技术正是利用修改给定图像直方图的方法来增强图像的 ,最后得到的图像增强程度取决于我们所采用的直方图。令变量 r和 s 分别代表图像增强前后的像素灰度级 ,相应灰度级分布的概率密度分别为 Pr(r)、Ps(s)。为讨论方便 ,假设像素灰度值已经归一化在区间[0 ,1] ,在灰度级坐标中 r = 0表示黑 , r= 1 表示白。对区间[0 ,1]内任一个 r值按变换函数 :
s = T( r) (1)
进行变换 , T( r)满足两个条件 : (1) 单值单调增加函数; (2) 0 ≤T(r) ≤1。 条件①使灰度级保持从黑到白的次序 ,条件②保证映射变换后像素灰度值在允许的范围内。从 s 到 r 的反变换为 :
r = T- 1(s) ,0 ≤s ≤1 (2)
同样 ,规定变量 s 也满足条件(1)和(2) 。由概率理论知 ,若Pr( r)和变换函数 s = T( r) 已知 , T- 1(s)是单值单调增加函数 ,则有 :
Ps(s) = [ Pr( r)dr/ds]r= T- 1(s) (3)
直方图增强技术就是通过变换函数 T( r) 控制图像灰度级的概率密度函数而改变图像的外貌。
2.2直方图均衡化概念
大多数原始的遥感图像由于其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换。本文主要介绍直方图均衡化并进行实验。直方图均衡化(Histogram Equalization)又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。
2.3直方图均衡化
直方图均衡化质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。假设灰度级为归一化至范围[0,1]内的连续量,并令 Pr (r)表示某给定图像中的灰度级的概率密度函数(PDF),其下标用来区分输入图像和输出图像的 PDF。假设我们对输入灰度级执行如下变换,得到(处理后的)输出灰度级 s:
S=T(r)=∫0r Pr(w)dw
式中 w 是积分的哑变量。可以看出,输出灰度级的概率密度函数是均匀的,即
a.当 0≤s≤1 时,Ps(s)=1
b.当 s 为其他时,Ps(s)=0
换言之,前述变换生成一幅图像,该图像的灰度级较为均衡化,且覆盖了整个范围[0,1]。灰度级均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。该变换函数只不过是一个累积分布函数(CDF)。
3.MATLAB实现及分析
现采用返利图片演示在matlab环境下实现增强目的。输入代码如下:
I=imread('D:\matlab7.0\work\maomao.png'); % 读入原图像I
I1=rgb2gray(I); %将原图I转换为灰度图像I1
I2=histeq(I1,100); %进行直方图均衡化
subplot(2,2,1),imshow(I);title('原图 图1'); %在第一区域显示原图
图1 原图
subplot(2,2,2),imhist(I1);title('原图直方图
');
从直方图中可知这幅图像最为突出的特点是较暗且动态范围较低,主要集中在(0,100)的区间内。直方图的宽度相对于整个灰度范围来说也比较窄,图像质量比较差,细节不够明显。在 Matlab 环境下进行直方图的均衡化,对图像的亮度范围进行拉伸,以提高对比度,效果如下:
subplot(2,2,3),imshow(I2);title('均衡化后的图片 图2 ');
经过处理之后的图像较原图有明显的改善,图像整体亮度增强,对比度增加,图像质量显著提高。
subplot(2,2,4),imhist(I2);title('处理过后的直方图
');
经过处理后图像的直方图如上图,较原来相比较,灰度值分布范围扩大,直方图在整个亮度标度上显著扩展。
4.结论
本文分析了这种处理方法的基本理论,并用 Matlab 进行实验,结果表明,基于直方图的图像增强技术能在一定程度上改善图像的对比度差细节和灰度动态范围。这种改变增强了图像的可读性,提高了地物的可分性,且算法简单,不失为一种行之有效的图像增强算法。