图像直方图的均衡化处理图的均衡化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像直方图的均衡化处理
一,技术要求
1.1,利用matlab提供的函数处理 (2)
1.2,利用matlab自行编辑代码处理 (3)
二,基本原理 (3)
2.1,直方图的均衡化 (3)
2.2,直方图的标准化 (3)
三,建立模型描述 ......................................................................... 3~4
3.1,利用matlab提供的函数处理 (4)
3.2,利用matlab自行编辑代码 (4)
四,源程序代码 ............................................................................. 5~6
4.1,绘制图像直方图的代码 (5)
4.2,绘制图像均衡化后直方图的代码 (5)
4.3,显示均衡化后图像的代码 (6)
五,调试过程及结论 ..................................................................... 6~8
5.1,在编辑窗口键入绘制直方图的源代码得到的输出结果为图2 (6)
5.2,利用matlab函数绘制的图像直方图标准化的输出结果如图3..7
5.3,直方图均衡化输出结果如图4所示。 (8)
六,心得体会 (9)
七,参考文献 (9)
图像直方图的均衡化处理
一,技术要求
1.1,利用matlab提供的函数处理
利用matlab提供的函数画出一幅图像的直方图,对其进行均衡化和标准化处理,并比较均衡化(标准化)后图像和原图像的区别。
1.2,利用matlab自行编辑代码处理
利用matlab自行编辑代码,实现一幅图像的直方图显示和均衡化的处理,同样比较处理前后两幅图像的区别,了解图像均衡化的效果和实际运用。
二,基本原理
直方图是多种空域处理技术的基础。它能有效的用于图像增强。
2.1,直方图的均衡化
直方图的均衡化是把原始图像的灰度直方图从比较集中的某个区域变成全部灰度范围内的均匀分布,实际上是对图像进行非线性拉伸。使一定灰度范围内的像素个数大致相同。这样就能增强图像的局部对比度,亮度可以更好的在直方图上分布。
2.2,直方图的标准化
直方图的标准化实际上原理和直方图的均衡化原理大致相同,也是将原始图像的灰度值从比较集中地部分扩展到较大范围内的均匀分布,但是它和均衡化的不同在于均衡化是将灰度值范围变成全部灰度范围的均匀分布,而标准化是将灰度值范围扩展到一个相对以前要大一些的范围内,并不要求要变成全部灰度范围内的均匀分布。
三,建立模型描述
3.1,利用matlab提供的函数处理
由于这个过程很简单,这里不必要画出流程图,只简述其操作过程:利用函数imread()读取原始图像,之后利用函数imhist()即可得到读入图像的直方图,再利用函数J=histeq(I,256)就可把原始图像均衡化处理,再利用函数imhist()可得到均衡化后图像的直方图;而直方图的标准化操作过程大致和均衡化过程相同。唯一的区别是对原始图像进行标准化处理时,规定了直方图的向量为counts,即标准化是利用函数J=histeq(I,counts)。
3.2,利用matlab自行编辑代码
利用函数imread()读取原始图像,利用自行编辑的代码显示原始图像的直方图,对原始图像进行均衡化处理,在利用编辑的代码显示出均衡化处理后图像的直方图,依次输出各个处理后的图像,比较学习。其流程图如图1所示。
图 1 图像均衡化和标准化流程图
四,源程序代码
4.1,绘制图像直方图的代码
f=imread('pout.tif');
figure,imshow(f);
[m,n]=size(f); %测量图像尺寸参数
h=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255
h(k+1)=length(find(f==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure,bar(0:255,h,'g') %绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
4.2,绘制图像均衡化后直方图的代码
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=h(j)+S1(i); %计算Sk
end
end
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度
for i=1:256
heq(i)=sum(h(find(S2==i))); %计算现有每个灰度级出现的概率end
figure,bar(0:255,heq,'b') %显示均衡化后的直方图
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
4.3,显示均衡化后图像的代码
F=f;
for i=0:255
F(find(f==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素end
figure,imshow(F) %显示均衡化后的图像
title('均衡化后图像')
五,调试过程及结论
5.1,在编辑窗口键入绘制直方图的源代码得到的输出结果为图2
图2 利用matlab代码及matlab函数绘制的直方图