图像直方图均衡化的程序设计文档格式.docx
- 文档编号:18188921
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:10
- 大小:149.63KB
图像直方图均衡化的程序设计文档格式.docx
《图像直方图均衡化的程序设计文档格式.docx》由会员分享,可在线阅读,更多相关《图像直方图均衡化的程序设计文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
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=
(S)
(S)对r同样满足上述条件。
由概率论知,若Pr(r)和变换函数S=T(r)已知,
(S)是单值单调增加函数,则变换后的概率密度函数Ps(S)如下式所示:
Ps(S)=[Pr(r)dr/dS]r=
直方图修正从本质上说就是从T(r)入手,调整图像的概率密度函数从而改变图像的特征。
一般来说,如果图像的直方图轮廓线越接近正态分布,则说明图像的亮度接近随机分布,适合用统计方法处理,这样的图像一般反差适中;
如果直方图峰值位置偏向灰度值大的一边,图像偏亮;
如果峰值位置偏向灰度值小的一边,图像偏暗;
峰值变化过陡、过窄,则说明图像的灰度值过于集中,后三种情况均存在反差小、质量差的问题。
直方图分析是图像分析的基本方法,通过有目的地改变直方图形态可改善图像的质量。
3直方图均衡化
大多数原始的遥感图像由于其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。
为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换。
本文主要介绍直方图均衡化并进行实验。
3.1直方图均衡化的概念
直方图均衡化(HistogramEqualization)又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。
这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:
如果输出数据分段值较小的话,会产生粗略分类的视觉效果。
3.2直方图均衡化理论
假设灰度级为归一化至范围[0,1]内的连续量,并令Pr(r)表示某给定图像中的灰度级的概率密度函数(PDF),其下标用来区分输入图像和输出图像的PDF。
假设我们对输入灰度级执行如下变换,得到(处理后的)输出灰度级s:
S=T(r)=∫0
rPr(w)dw
式中w是积分的哑变量。
可以看出,输出灰度级的概率密度函数是均匀的,即
a.当0≤s≤1时,Ps(s)=1
b.当s为其他时,Ps(s)=0
换言之,前述变换生成一幅图像,该图像的灰度级较为均衡化,且覆盖了整个范围[0,1]。
灰度级均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。
该变换函数只不过是一个累积分布函数(CDF)。
3.3直方图均衡化算法
直方图均衡化算法将原图像的直方图改变为在整个灰度范围内基本均匀地分布的形式,由此扩大了像素灰度的动态范围,从而增强了图像的对比度。
直方图均衡化算法步骤为:
1)给出原始图像的所有灰度级
(k=0,1,…,L-1)。
2)统计原始图像各灰度级的像素数
。
3)根据原图像,计算灰度直方图:
(k=0,1,…,L-1)
式中,
为总像素数,
为灰度级
的像素数。
4)计算原始图像的累积直方图:
(
,k=0,1,…,L-1)
5)取整计算:
6)确定映射关系:
7)统计新直方图各灰度级
的像素数目
8)计算新的直方图:
4Matlab实现
选择一幅256级的灰度图像,计算该图像的直方图,得到其直方图图形,根据图像直方图的均衡化原理进行直方图均衡化,保存变换后的图像,并显示均衡化后的直方图,程序代码如下:
I=imread('
1.bmp'
);
figure;
subplot(2,2,1),imshow(I);
title('
原图'
[m,n]=size(I);
GP=zeros(1,256);
fork=0:
255
GP(k+1)=length(find(PS==k))/(m*n);
end
subplot(2,2,2),bar(0:
255,GP,'
g'
)
原图像直方图'
xlabel('
灰度值'
ylabel('
出现概率'
S1=zeros(1,256);
fori=1:
256
forj=1:
i
S1(i)=GP(j)+S1(i);
end
S2=round((S1*256)+0.5);
GPeq(i)=sum(GP(find(S2==i)));
subplot(2,2,3),bar(0:
255,GPeq,'
b'
均衡化后的直方图'
I1=I;
fori=0:
255
I1(find(I==i))=S2(i+1);
subplot(2,2,4),imshow(I1)
均衡化后图像'
imwrite(I1,'
PicEqual.bmp'
运行之后得到结果图如下所示。
图4.1程序结果图
用matlab库函数对该图像进行直方图均衡化,并显示均衡化后的直方图,程序代码如下:
subplot(2,2,2),imhist(I);
[J,T]=histeq(I,256);
subplot(2,2,3),imshow(J);
subplot(2,2,4),imhist(J);
图4.2程序结果图
5结果分析
由两种不同方法所得到的直方图均衡化的结果图如下所示。
图5.1结果图1
图5.2结果图2
由原图显示的图像及其直方图可知这幅图像最为突出的特点是较暗且动态范围较低。
直方图的宽度相对于整个灰度范围来说非常狭窄,图像质量比较差,地物可分性较差;
在Matlab环境下进行直方图的均衡化,对图像的亮度范围进行拉伸,以提高对比度。
经过直方图均衡化,图像的对比度及平均亮度明显提高,直方图在整个亮度标度上显著扩展,图像质量提高。
将两幅结果图进行对比可发现,用matlab库函数对该图像进行直方图均衡化的效果明显高于用均衡化原理编写的程序对该图像进行直方图均衡化的效果。
直方图均衡化是图像增强技术的基本方法,本次课设分析了这种处理方法的基本理论,并用Matlab进行实验,结果表明,直方图均衡化在一定程度上改善了图像的对比度差和灰度动态范围,增强了图像的可读性,提高了地物的可分性,有利于进行遥感图像的目视解译。
该算法简单,是一种行之有效的图像增强算法。
6心得体会
本次设计的过程和结果都给了我很多感触。
初次拿到课程设计的题目时,只是对直方图有一定的理解,至于怎么设计程序,几乎没有什么想法。
在同学的指导和讲解下,对直方图均衡化的介绍有了一定的了解。
后来通过不断的学习和查阅资料,终于清楚的知道了直方图的基本情况和设计的方案有了一定的理解。
通过对各种原理的比较和所学知识能实现的状况,对本次课程设计进行了设计,最后进行的是课设报告的撰写。
通过本次设计,让我学会了从问题的高度来考虑设计的方方面面,对程序的设计和研究有了更深刻的体会;
让我了解到程序的设计是建立在对理论知识了解的基础上的,特别是对直方图均衡化的原理要有较为详细的了解,此外对直方图均衡化算法也要进行了解;
在编写程序时,进行模块化设计,以严谨的态度进行编程,避免出现低级错误,养成为程序添加注释和说明的好习惯,以便自己的修改和阅读者轻松的了解程序的各部分及整体的功能。
参考文献
[1]何东健.数字图像处理.西安电子科技大学出版社,2003
[2]冈萨雷斯等,《数字图像处理》(Matlab版).电子工业出版社,2005
[3]冈萨雷斯等著,阮秋琦等译.《数字图像处理》(第二版).电子工业出版社,2007
[4]王慧琴等.数字图像处理.北京:
北京邮电大学出版社,2006
[5]杨杰.数字图像处理及MATLAB实现.北京:
电子工业出版社.2010.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 直方图 均衡 程序设计