资源描述:
《空域图像增强报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告实验课程:光电图像处理姓名:学号:实验地点:指导老师:实验时间:一.实验名称:空间图象增强(一)二.实验目的1.熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。2.熟练掌握各种空间域图像增强的基本原理及方法。3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。4.熟悉直方图均衡化的基本原理、方法和实现。三.实验原理(一)数字图像的灰度变换1、线性灰度变换令原图像灰度范围由[a,b]线性变换后图像灰度范围[c,d],以便于提升原图像的对比度。线性灰度变换公式如下:(1)其中,f(x,y)为原始图像,灰度范围为[a,b],g(x,y
2、)为增强后的数字图像,灰度范围为[c,d]。注:实验中[a,b]可由实际图像来确定,[c,d]可视具体情况人为给定。2、非线性灰度变换(对数变换或幂律变换选作其一)非线性拉伸不是对图像的灰度值进行扩展,而是有选择地对某一灰度范围进行扩展,其他范围的灰度值则可能被压缩。常用的非线性变换:对数变换和指数变换。即对数变换公式为:幂律(伽马)变换为:(二)直方图处理对图像2种定义下的直方图统计统计,并分别画出两种定义下的直方图。直方图均衡化主要用于增强动态范围偏小的图像的反差。该方法的基本思想是把原始的直方图变换为均匀分布的形状,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。一.
3、实验步骤(一)数字图像的灰度变换1、线性灰度变换1)读取一幅对比度低的灰度图像并显示。2)以m文件形式编写matlab代码,实现数字图像的灰度范围由[a,b]到[c,d]的线性拉伸,以便于提升原图像的对比度。线性灰度变换公式如下:(1)其中,f(x,y)为原始图像,灰度范围为[a,b],g(x,y)为增强后的数字图像,灰度范围为[c,d]。注:实验中[a,b]可由实际图像来确定,[c,d]可视具体情况人为给定。3)显示经过线性灰度变换后的图像,并对变换结果进行必要的分析,画出灰度变换曲线图。4)以另一个文件名形式保存灰度变换后的图像。2、非线性灰度变换(对数变换或幂律变换选作其一)1)读取一幅
4、灰度图像并显示。2)分别对其进行对数变换或幂律(伽马)变换。即对数变换公式为:(2)幂律(伽马)变换为:(3)3)显示变换后的图像,并利用matlab工具画出对数或幂律变换曲线。4)以另一个文件名形式保存变换后的图像。(二)直方图处理1)读取一幅灰度图像并显示原始图像。2)编写m文件实现对输入图像2种定义下的直方图统计统计(即各个灰度级出现的次数及概率分布),并分别画出两种定义下的直方图。3)对输入灰度图像进行直方图均衡化处理,分别显示均衡处理前后的图像和对应的直方图。一.实验结果及分析(一)数字图像的灰度变换1、线性灰度变换实验结果:2、非线性灰度变换(对数变换或幂律变换选作其一)(二)直方
5、图处理结果分析:实验结果与预期一致六.程序源代码(一)数字图像的灰度变换1、线性灰度变换程序源代码:I1=imread('T1.jpg');I1=rgb2gray(I1);subplot(221);imshow(I1);a=min(min(I1));b=max(max(I1));B=(250-10)/double((b-a))*(I1-a)+10;subplot(222);imshow(B);subplot(223);imhist(I1);subplot(224);imhist(B);2、非线性灰度变换(对数变换或幂律变换选作其一)subplot(231)I=imread('T2.jpg');
6、I=rgb2gray(I);imshow(I);a=min(min(I));b=max(max(I));c=2,r=0.8G=uint8(12*log(1+double(I)));subplot(232)imshow(G);subplot(233)z=0:1:1000;plot(z,12*log(double(z)));subplot(234)imhist(I);subplot(235)imhist(G);(二)直方图处理I=imread('pout.tif');[height,width]=size(I);subplot(231);imshow(I),title('rootimage')su
7、bplot(232)imhist(I);title('原始直方图');L=256;K=zeros(1,L);fori=1:heightforj=1:widthK(I(i,j)+1)=K(I(i,j)+1)+1endendsubplot(233)bar(K);pk=K;fori=1:Lpk(i)=K(i)/double(height*width)endsubplot(234)bar(pk)ps=pk