matlab 直方图均衡实验报告

合集下载

matlab实验(直方图均衡化、频域锐化、空域锐化)

matlab实验(直方图均衡化、频域锐化、空域锐化)

实验一直方图均衡化一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。

二、实验内容将一张彩色图片转换成灰色图片,做出均衡化后的直方图,并将灰度图和均衡化后的图片对比。

三、实验原理直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。

从而达到清晰图像的目的。

四、实验代码及结果clear all;f=imread('14.jpg');%读入灰色图像imwrite(rgb2gray(f),'14Gray.bmp'); %将彩色图片灰度化并保存f1=imread('14Gray.bmp');g=histeq(f1,250);%利用histep()函数对灰色图像进行直方图均衡化处理subplot(121);imshow(f1);title('灰色图像');%显示生成灰色图像subplot(122);imshow(g);title('直方图均衡化处理');%显示生成均衡化以后的图像五、实验结果分析利用imhist()函数对两幅图像的灰度范围进行分析,根据下图可知,灰色图像的灰度范围相对来说非常狭窄,图像质量比较差。

而经过直方图均衡化处理后,图像的对比度及平均亮度明显提高,直方图在整个亮度标度上明显扩展,图像质量明显提高。

实验二空域锐化一、实验目的理解图象锐化的概念,掌握常用空域锐化增强技术。

加深理解和掌握图像锐化的原理和具体算法,理解图象锐化增强的处理过程和特点。

二、实验内容利用一阶微分锐化增强,实现Roberts算子的锐化处理。

观察处理前后图像效果,分析实验结果和算法特点。

三、实验原理Roberts算子是突出图像的细节或者是增强被模糊了的细节。

因此要对图像实现锐化处理,可以用空间微分来完成,但是,这样图像的微分增强了边缘和其他的突变(如噪声)并削弱了灰度变化缓慢区域。

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

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

海南大学课程论文课程名称:数字图像处理题目名称:直方图均衡化的matlab实现学院:信息科学技术学院专业班级:2010级计算机科学与技术专业直方图均衡化的matlab实现摘要直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的图像增强方法。

为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,本文采用直方图均衡化的图像增强的基本理论原理,在matlab环境下,对数字图像进行直方图均衡化处理。

实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。

关键词:直方图,均衡化,matlab引言图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。

在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。

图像增强技术根据增强处理过程所在的空间不同,可分为基于空间域的算法和基于频率域的算法两大类。

基于空间域的算法分为点运算算法和邻域去噪算法。

点运算算法即灰度级校正、灰度变换和直方图均衡化等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。

直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,增强效果好。

本文讨论了空间域的直方图均衡化增强方法,并用matlab 进行了实现。

1.论文目的1.1通过直方图以及均衡化的理论原理,用matlab实现直方图均衡化;1.2 在加深对直方图以及均衡化的理论原理知识理解的基础上,学会运用已学的知识设计直方图均衡化实验并对结果进行分析,并用实验的结果来说明直方图均衡化的特点和应用。

2.直方图理论灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。

确定图像像元的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像元数或该像元数占总像元数的比例值,做出的条形统计图即为灰度直方图。

MATLAB图像直方图及均衡化处理报告

MATLAB图像直方图及均衡化处理报告

电信信息工程3班卢国梁200730213246 23 1、用matlab作出图像的直方图clear;I=imread('2222.jpg');I=rgb2gray(I);add=[];tab1=zeros(1,256);for n=0:255X=I==n;add=[add;sum(sum(X))]; end;[a,b]=size(I);final=add/(a*b);figure;stem(final,'Marker','none'); figure(2)imshow(I)2、用matlab实现图像的直方图均衡化均衡化前均衡化后程序:clear;I=imread('2222.jpg');I=rgb2gray(I);I2=I;add=[];add1=[];tab1=zeros(1,256);tab2=zeros(1,256);for n=0:255X=I==n;add=[add;sum(sum(X))]; end;[a,b]=size(I);final=add/(a*b);for n=1:256for i=1:ntab1(n)=tab1(n)+final(i);end;end;tab1=tab1*255;tab2=round(tab1); for n=1:afor m=1:bfor t=0:255if I(n,m)==tI2(n,m)=tab2(t+1);end;end;end;end;for n=0:255X1=I2==n;add1=[add1;sum(sum(X1))]; end;[a1,b1]=size(I2);final1=add1/(a1*b1);figure;stem(final,'Marker','none');figure(2)imshow(I2);figure(3)stem(final1,'Marker','none')均衡化后直方图实验心得体会:这次先是把老师的课件都看了一次,知道了各种方法,包括多幅图像去噪声啊,中值滤波啊等等,看了一些参考的程序,请教了同学,就写了这么几个程序,中间遇到了一些问题,比如在均衡化的时候判断的时候用错了序列,结果图像处理之后变得更加难看,思量着不可能越处理越糟糕,就里里外外看了好久的程序,毕竟是当局者,看不出来,请教了同学帮忙看错误,才找出了那个错误:if I(n,m)==add(t);I2(n,m)=tab2(t+1);后来改为if I(n,m)==t;I2(n,m)=tab2(t+1);图像也好看很多了!。

直方图均衡化和匹配报告

直方图均衡化和匹配报告

直方图均衡化和匹配报告一.实验目的:加强直方图均衡化和直方图匹配的图像增强技术的认识和了解; 学会用Matlab 中的下列函数对输入图像进行上述2类运算; 感受各种不同的直方图图像增强处理方法对最终图像效果的影响; 二.实验内容:1.熟悉Matlab 文件中有关Imhist 和histeq 函数的使用说明,充分理解其使用方法并能运用它们完成实验内容。

2.将mountain.jpg 图像文件读入Matlab ,对其作直方图均衡化。

显示运算前后该图像的直方图,处理后的图像。

3.对mountain.jpg 图像做直方图匹配运算,显示运算前后该图像的直方图,处理后的图像和灰度变换函数。

直方图反映灰度等级的分布情况,本实验指定的直方图如下:1400×rr ≤5 7000-310×r 5<r ≤20 900-5×r 20<r ≤180 -1440+8×r 180<r ≤225 3060-12×r225<r ≤2554.利用mountain.jpg 图像的直方图(imhist 函数可生成),编写直方图均衡化函数,显示灰度变换函数。

三.实验结果与分析:1.图像均衡化处理前后的直方图和图像对比原图像 均衡化后的图像n =原图像直方图均衡化后的直方图由处理后的图像可以看出,图像的灰度值减少,图像对比度明显增强,但是导致很多地方的细节模糊,看不清楚;而且有些地方过分增强,严重干扰清晰度。

2.直方图匹配处理前后图像对比原图像处理后图像原图像直方图直方图匹配运算后的直方图直方图匹配运算函数采用直方图匹配运算后,发现效果明显比直接均衡化的效果好的多,将一些重要的细节突出来了,对比度明显增强,但是有些地方色彩过于暗淡,灰度值过高,影响了图像的美观,但用于进行图像对比分析还是比较实用的。

3.编写的直方图均衡化函数,进行灰度变换原图处理后图像原图直方图处理后直方图最后一步通过自己编写的程序,对直方图进行均衡化,效果与第一步所取得的效果差不多是一致的。

直方图均衡化算法实现实验报告

直方图均衡化算法实现实验报告

南京信息工程大学实验(实习)报告
实验(实习)名称直方图均衡化算法实现实验(实习)日期得分指导教师专业年级班次姓名学号
一、实验目的:
理解直方图均衡化算法的原理,掌握算法的实现
二、实验内容:
在Matlab中编程实现直方图均衡化算法。

三、实验要求:
1. 读入一幅图像(lena.tif)
提示:使用imread
2. 直方图均衡化
算法处理过程请参看第四章ppt
3. 显示处理前和处理后的灰度图像
提示:subplot,imshow
4. 撰写实验报告并附上所用程序和结果。

三.实验步骤:
在matlab命令窗口执行:
>> f=imread('lena.tif');
>> g=histeq(f);
>> subplot(1,2,1);
>> imshow(f);
>> subplot(1,2,2);
>> imshow(g);
运行结果(截图)
同一个图像窗口左右显示处理前后的图像。

matlab实验(直方图均衡化、频域锐化、空域锐化)

matlab实验(直方图均衡化、频域锐化、空域锐化)

实验一直方图均衡化一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。

二、实验内容将一张彩色图片转换成灰色图片,做出均衡化后的直方图,并将灰度图和均衡化后的图片对比。

三、实验原理直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。

从而达到清晰图像的目的。

四、实验代码及结果clear all;f=imread('14.jpg');%读入灰色图像imwrite(rgb2gray(f),'14Gray.bmp'); %将彩色图片灰度化并保存f1=imread('14Gray.bmp');g=histeq(f1,250);%利用histep()函数对灰色图像进行直方图均衡化处理subplot(121);imshow(f1);title('灰色图像');%显示生成灰色图像subplot(122);imshow(g);title('直方图均衡化处理');%显示生成均衡化以后的图像五、实验结果分析利用imhist()函数对两幅图像的灰度范围进行分析,根据下图可知,灰色图像的灰度范围相对来说非常狭窄,图像质量比较差。

而经过直方图均衡化处理后,图像的对比度及平均亮度明显提高,直方图在整个亮度标度上明显扩展,图像质量明显提高。

实验二空域锐化一、实验目的理解图象锐化的概念,掌握常用空域锐化增强技术。

加深理解和掌握图像锐化的原理和具体算法,理解图象锐化增强的处理过程和特点。

二、实验内容利用一阶微分锐化增强,实现Roberts算子的锐化处理。

观察处理前后图像效果,分析实验结果和算法特点。

三、实验原理Roberts算子是突出图像的细节或者是增强被模糊了的细节。

因此要对图像实现锐化处理,可以用空间微分来完成,但是,这样图像的微分增强了边缘和其他的突变(如噪声)并削弱了灰度变化缓慢区域。

直方图均衡化matlab程序

直方图均衡化matlab程序

直方图和直方图均衡的Matlab完整程序(数字图像处理)一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。

二、实验内容将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。

三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。

通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。

直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。

从而达到清晰图像的目的。

四、实验程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%函数功能,画出图像的直方图,并对图像进行直方图均衡%直接读图像abc.jpg,读到tuu中%graydis是原始直方图各灰度级像素个数%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro%t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标%new_graydis是统计新直方图各灰度级像素个数%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro%计算直方图均衡后的新图new_tu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%clear allclose alltuu=imread('abc.jpg'); %读入图片tu=rgb2gray(tuu); %将彩色图片转换为灰度图graydis=zeros(1,256); %设置矩阵大小graydispro=zeros(1,256);new_graydis=zeros(1,256);new_graydispro=zeros(1,256);[h w]=size(tu);new_tu=zeros(h,w);%计算原始直方图各灰度级像素个数graydisfor x=1:hfor y=1:wgraydis(1,tu(x,y))=graydis(1,tu(x,y))+1;endend%计算原始直方图graydisprograydispro=graydis./sum(graydis);subplot(1,2,1);plot(graydispro);title('灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算原始累计直方图for i=2:256graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1); end%计算和原始灰度对应的新的灰度t[],建立映射关系for i=1:256t(1,i)=floor(254*graydispro(1,i)+0.5);end%统计新直方图各灰度级像素个数new_graydisfor i=1:256new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i); end%计算新的灰度直方图new_graydispronew_graydispro=new_graydis./sum(new_graydis);subplot(1,2,2);plot(new_graydispro);title('均衡化后的灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算直方图均衡后的新图new_tufor x=1:hfor y=1:wnew_tu(x,y)=t(1,tu(x,y));endendfigure,imshow(tu,[]);title('原图');figure,imshow(new_tu,[]);title('直方图均衡化后的图');//////////////////////////////////////////////////////另外两种代码:Matlab下面的代码来自archiless,注释非常详细,适合初学。

实验报告

实验报告

实验一直方图均衡化一、实验目的和要求1、实验目的(1)利用MATLAB的软件进行图像处理(2)掌握直方图修改技术进行图像增强(3)掌握MATLAB图像锐化处理2、实验要求(1)掌握课程设计的相关知识,概念清晰。

(2)程序设计合理,能够正确运行。

二、实验内容和原理1、直方图均衡化概念:直方图均衡化就是把一已知灰度概率分布的图像经过一种变换,使之演变成一幅具有均匀灰度概率分布的新图像。

它是以累积分布函数变换法为基础的直方图修正法。

灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数。

直方图操作能够有效用于图像增强;提供有用的图像统计资料,其在软件中易于计算,适用于商用硬件设备。

直方图均衡化是通过对原图像进行某种变换,使原图像的灰度直方图修正为均匀分布的直方图的一种方法。

图像灰度直方图均衡化使得图像的灰度分布趋向均匀,图像所占有的像素灰度间距拉开,加大了图像反差,改善了视觉效果,达到增强目的。

MATLAB是数字图像处理的常用工具,应用MATLAB的各种函数能够对数字图像进行各种处理。

s=kk三、程序设计(1)程序设计思路要实现图像直方图均衡化,根据直方图均衡化的理论基础,首先将原图像的灰度级归一化,将得到的灰度级数记为,计算每个级数灰度值的频率,按灰度值增大累加每个灰度级的频率,得到每个灰度级的累积频率。

输出图像的与原图像的灰度范围一样取个等级,将每个灰度级的累积频率近似为最接近的原图像的灰度值。

这就得到输出图像的每个灰度级灰度值。

根据旧图像灰度值和新灰度图像灰度值的对应关系,计算出对应每个的像素数。

计算出每个的频率,这样就实现了直方图的均衡化。

(2)编写程序编写的源程序代码如下:clc;clear all;close all;I=imread('图片路径\图片名称','图片类型');A=double(I);[m,n]=size(A);c=255;result=0;x=zeros(1,256);y=zeros(1,256);z=zeros(1,256);%计算原图所有灰度级像素数y(k)for i=1:mfor j=1:nt=A(i,j);y(t+1)=y(t+1)+1;endend%原图灰度分布概率z(k)for k=1:256z(k)=y(k)/(m*n);end%计算累计概率x(l)for l=1:256result=result+z(l);x(l)=result;end%累计概率取整x=round(c*x);%将处理后的灰度装入新的矩阵for i1=1:mfor j1=1:nM(i1,j1)=x(A(i1,j1)+1);endend%转换为unit8型P=uint8(M);%输出均衡化前后图像和直方图subplot(2,2,1);imshow(I);title('原始图像');subplot(2,2,2);imhist(I);title('原始直方图');subplot(2,2,3);imshow(P);title('均衡化图像');subplot(2,2,4);imhist(P);title('直方图均衡化');(3)运行程序在MATLAB的编辑器中输入程序,保存。

MATLAB直方图均衡

MATLAB直方图均衡

实验一图像的直方图均衡一、实验目的1,理解直方图均衡的原理与作用2,掌握统计图像直方图的方法3,掌握图像直方图均衡的方法二、实验原理在实际应用中,希望能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配,这就是直方图规定化的基本思想。

换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。

直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。

三、知识点和涉及的相关知识图像的空间域增强、图像的直方图概念、性质。

四、实验内容1,MATLAB代码:clear all%一,图像的预处理,读入彩色图像将其灰度化PS=imread('1.jpg'); %读入JPG彩色图像文件imshow(PS) %显示出来title('输入的彩色JPG图像')imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存PS=rgb2gray(PS); %灰度化后的数据存入数组%二,绘制直方图[m,n]=size(PS); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endfigure,bar(0:255,GP,'g') %绘制直方图title('原图像直方图')xlabel('灰度值')ylabel('出现概率')%三,直方图均衡化S1=zeros(1,256);for i=1:256for j=1:iS1(i)=GP(j)+S1(i); %计算SkendendS2=round((S1*256)+0.5); %将Sk归到相近级的灰度 for i=1:256GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率 end figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图 title('均衡化后的直方图') xlabel('灰度值')ylabel('出现概率')用系统函数均衡后结果:均值后:1、自己设计程序实现图像的直方图均衡;自己设计的均值代码:2、 clear,close all;3、 I=imread('image.jpg');4、 subplot(2,2,1);5、 imshow(I);6、 title('原始图像');7、 PS=rgb2gray(I);8、 [m,n]=size(I);9、 GP=zeros(1,256); 10、11、12、13、14、15、16、17、18、19、20、21、22、23、 for k=0:255 GP(k+1)=length(find(I==k))/(m*n); end subplot(2,2,2)bar(0:255,GP,'g') title('原图像直方图') xlabel('灰度值') ylabel('出现概率')N=zeros(1,256); for i=1:256 for j=1:i N(i)=GP(j)+N(i); end end24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、 S2=round((N*256)+0.5); for i=1:256 GPeq(i)=sum(GP(find(S2==i))); end subplot(2,2,3) bar(0:255,GPeq,'b') title('均衡化后直方图') xlabel('灰度值') ylabel('出现概率') X=PS; for i=0:255 X(find(PS==i))=S2(i+1); end subplot(2,2,4) imshow(X); title('均衡化后图像'); 画出均衡后的图像直方图;。

数字图像处理实验报告(matlab)

数字图像处理实验报告(matlab)

学院:自动化学院班级:电081班姓名:***学号:********2011年10月实验一直方图均衡化一、实验目的:1. 熟悉图像数据在计算机中的存储方式;2. 掌握图像直方图均衡化这一基本处理过程。

二、实验条件:PC微机一台和MATLAB软件。

三、实验内容:1.读入图像数据到内存中,并显示读入的图像;2.实现直方图均衡化处理,显示处理前后图像的直方图。

3.显示并保存处理结果。

四、实验步骤:1.打开Matlab编程环境;2.获取实验用图像。

用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。

3.获取输入图像的直方图:用’imhist’函数处理图像。

4.均衡化处理:用’histeq’函数处理图像即可。

5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。

6.保存实验结果:用’imwrite’函数处理。

五、实验程序及结果:1、实验程序subplot(6,2,1);i=imread('test1-1.jpg');imhist(i);title('test1-1 hist');subplot(6,2,2);i=im2double(i);imshow(i);title('test1-1 Ô-ͼÏñ');subplot(6,2,3);s=histeq(i);imhist(s);title('test1-1 balancedhist');subplot(6,2,4);imshow(s);title('test1-1 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,5);i=imread('test1-2.jpg');imhist(i);title('test1-2 hist');subplot(6,2,6);i=im2double(i);imshow(i);title('test1-2 Ô-ͼÏñ');subplot(6,2,7);s=histeq(i);imhist(s);title('test1-2 balancedhist'); subplot(6,2,8);imshow(s);title('test1-2 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,9);i=imread('test1-3.jpg');imhist(i);title('test1-3 hist');subplot(6,2,10);i=im2double(i);imshow(i);title('test1-3 Ô-ͼÏñ');subplot(6,2,11);s=histeq(i);imhist(s);title('test1-3 balancedhist'); subplot(6,2,12);imshow(s);title('test1-3 ¾ùºâ»¯ºóµÄͼÏñ');2、实验结果test1-1 hist050100150200250test1-1 原图像test1-1 balancedhist00.10.20.30.40.50.60.70.80.91test1-1 均衡化后的图像test1-2 hist050100150200250test1-2 原图像test1-2 balancedhist00.10.20.30.40.50.60.70.80.91test1-2 均衡化后的图像0test1-3 hist050100150200250test1-3 原图像test1-3 balancedhist00.10.20.30.40.50.60.70.80.91test1-3 均衡化后的图像六、实验思考1.数字图像直方图均衡化之后直方图为什么不是绝对平坦的?答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。

matlab 直方图均衡实验报告

matlab 直方图均衡实验报告

基于直方图的灰度级修正班级:电子信息科学与技术0901班姓名:学号:设计时间: 2012年5月24日一 设计课题:基于直方图的灰度级修正二 设计内容及要求:实验原理: 1.直方图均衡化处理技术是用累积分布函数作变换函数的直方图修正方法;2.用累积分布函数作为变换函数可产生一幅灰度级分布具有均匀概率密度的图像。

均衡步骤:1、统计原始图像的直方图,求出)(k r r P ;2、用累积分布函数作变换∑==kj j r k r P s 0)( ,求变换后的新灰度;3、用新灰度代替旧灰度,求出)(k s s P ,这一步是近似的,力求合理,同时把灰度相等的或相近的合在一起。

设计要求:1. 利用fopen 等函数打开*.dat 文件,采用for 循环统计图像里各灰度级的个数,并用换图函数表示出来。

2. 将打开的图像,采用直方图均衡对原始图像进行灰度级转换,并绘出其灰度直方图。

三 程序设计及其说明:本程序采用matlab GUI 绘图来实现,操作界面、菜单内容如下:图1 操作界面图2 菜单内容程序特色:1.原始图像灰度直方图统计算法一for l=0:255for i=1:rowif fid(i,1)==lh(l+1)=h(l+1)+1;endendend2. 原始图像灰度直方图统计算法二for i=1:rowh(fid(i)+1)=h(fid(i)+1)+1;end由主要代码部分可以看出:算法二算法复杂度很小,这是利用fopen打开文件的特色来决定的,它读入数组时是m行1列。

四实验结果及分析:灰度直方图统计:原始图像与均衡后图像灰度直方图(以LENA女孩图像为例)不同亮度图像直方图均衡效果显示1. LENA 图像 (1)正常图5 LENA 正常 原始及均衡后图像显示(2)高亮度图3 原始图像直方图图4 图像均衡后直方图图6 LENA高光原始及均衡后图像显示(3)偏暗图7 LENA偏暗原始及均衡后图像显示2.couple图像(1)正常图8 couple正常原始及均衡后图像显示图9 couple高亮原始及均衡后图像显示(3)偏暗图10 couple偏暗原始及均衡后图像显示3.NBA图像(1)正常图11 NBA正常原始及均衡后图像显示(3)偏暗图13 NBA偏暗原始及均衡后图像显示不同亮度的原始图像与均衡后图像灰度直方图1. LENA图像(1)正常(2)高亮度(3)偏暗图16 原始图像直方图图17 图像均衡后直方图图14 原始图像直方图图15 图像均衡后直方图2. couple 图像 (1)正常(2)高亮度图20 原始图像直方图图21 图像均衡后直方图图18 原始图像直方图图19 图像均衡后直方图(3)偏暗3. NBA 图像 (1)正常图24 原始图像直方图图25 图像均衡后直方图图22 原始图像直方图图23 图像均衡后直方图(2)高亮度(3)偏暗图28 原始图像直方图图29 图像均衡后直方图图26 原始图像直方图图27 图像均衡后直方图结果分析:通过几个图像显示结果可以看出:直方图均衡结果使图像亮度有所提高,所以它对比较暗的图像显示的更加清晰,而太亮的图像或曝光过度的图像,经过直方图均衡,效果不是很好,但是轮廓勾画的会明显些。

直方图均衡化的MATLAB实现(遥感课程设计)

直方图均衡化的MATLAB实现(遥感课程设计)
r
s T r Pr r dr
0
(2.4)
其中,
P r dr 是 r 的累积分布函数,由于累积分布函数是 r 的函数,且从 0 到 1 单调递
0 r
r
增,所以变换函数即式(2.4)满足关于 T r 在 0 r 1 区间内单值单调增加,在 0 r 1 内有 0 T r 1 的两个条件。 对公式(2.4)中的 r 求导,有 ds / dr Pr r ,把求导结果代入式(2.3),则有:
2、图像直方图均衡化
直方图是反映一幅图像中的灰度级与出现这种灰度级的概率之间关系的统计图表。 直方
图的横坐标是灰度级 rk , 纵坐标是图像中具有该灰度级的像素个数或出现这个灰度级数的概 率 P rk 。直方图能直观地表示出图像具有某种灰度级的像素个数,是对图像灰度值分布情 总数, nk 为第 k 级灰度的像素数。 通过观察图像的灰度直方图, 就可以判断这幅图像的对比度和清晰度, 也可以掌握图像 的明暗程度。本文即采用直方图均衡化[11]的方法来对航拍图像进行增强处理。 设 r 和 s 分别表示归一化 (注: 归一化是指图像的灰度值通过某个比例变换后限制在[0,1] 之间)的图像灰度和经直方图修正后的图像灰度,即 0 r , s 1 。在 0,1 区间内的任何一 个 r 值都可产生一个 s 值,且有: s T r 。T r 为变换函数,满足:(1)在 0 r 1 区 间内是单调递增函数;(2)对于 0 r 1 ,有 0 T r 1 。条件(1)保证变换后的灰度 从黑到白的次序不变,条件(2)确保灰度变换后的像素处于允许的范围之内。从 s 到 r 的 反变换关系为: r T 况的整体描述。概率灰度直方图的计算公式为: P rk nk / N 。其中 N 为图像中的像素

直方图均衡实验报告

直方图均衡实验报告

数字图像处理实验报告实验二图像直方图均衡姓名:*******学号:*********专业:************一.实验目的学习并掌握图像直方图均衡的基本理论,并通过分析均衡前后的图像验证课堂教学内容,总结直方图均衡的特点。

二.实验内容对图像 img2 进行直方图均衡(img2为X光片图像)1.对比均衡前后图像的直方图及特点,①图形显示其直方图以及灰度映射关系②计算以下参数:概率非零灰度数,概率非零灰度中最大概率、最小概率、最大最小概率之比。

③统计图像中概率大于平均概率的灰度级数;④计算非零概率的平均值和方差⑤您认为哪些参数能够表现图像直方图分布的均匀程度?试提取相关参数进行测试。

2.找一到两幅图像重复上述实验。

3.通过实验结果对比,能得出什么结论?三、实验报告要求1.源程序(C或Matlab):(1).画直方图的Matlab程序filname='E:\课件\大三下\图像处理\实验二\1.bmp'; //打开文件A=imread(filname); //读取文件信息imhist(A); //画出图像文件的直方图(2)C程序#include<stdio.h>#include<windows.h>#include<string.h>#include<math.h>BITMAPFILEHEADER bfh;BITMAPINFOHEADER bih;typedef struct PP{unsigned char GRAY;}PIXEL;////画出灰度映射关系图////void draw(double s[]){FILE *fout,*fin;int i,j;PIXEL p[256][256];BITMAPFILEHEADER m_bfh;BITMAPINFOHEADER m_bih;RGBQUAD colorPanel[256];fin=fopen("1.bmp","rb");fread(&m_bfh,1,sizeof(BITMAPFILEHEADER),fin);fread(&m_bih,1,sizeof(BITMAPINFOHEADER),fin);fread(colorPanel,256,sizeof(RGBQUAD),fin);fclose(fin);fout=fopen("Gray mapping relationship.bmp","wb");m_bih.biWidth=256;m_bih.biHeight=256;m_bih.biSizeImage=256*256;m_bfh.bfSize=m_bfh.bfOffBits+m_bih.biSizeImage;for(i=0;i<256;i++)for(j=0;j<256;j++) p[i][j].GRAY=255;for(i=0;i<256;i++){j=(int)s[i];p[i][j].GRAY=0;}fwrite(&m_bfh,1,sizeof(BITMAPFILEHEADER),fout);fwrite(&m_bih,1,sizeof(BITMAPINFOHEADER),fout);fwrite(colorPanel,256,sizeof(RGBQUAD),fout);fwrite(p,256*256,1,fout);fclose(fout);}////统计概率非零灰度数子函数 ///double nonzero(double p[])int i;double sum=0;for(i=0;i<256;i++)if(p[i]!=0) sum=sum+1;printf("概率非零灰度数:%.2f\n",sum);return sum;}////找到最大概率子函数////double lmax(double p[]){int i;double max;for(i=0;i<256;i++) //对max初始化if(p[i]!=0){max=p[i];break;}for(i=0;i<256;i++)if(p[i]!=0&&p[i]>max) max=p[i]; //找出概率非零最大值printf("概率非零最大值:%lf\n",max);return max;}////找到最小概率子函数////double lmin(double p[]){int i;double min;for(i=0;i<256;i++) //对min初始化if(p[i]!=0){min=p[i];break;}for(i=0;i<256;i++)if(p[i]!=0&&p[i]<min) min=p[i]; //找出概率非零最小值printf("概率非零最小值:%lf\n",min);return min;}////求最大最小概率之比子函数////double rate(double max,double min){double r;r=max/min;printf("最大最小概率之比:%lf\n",r);return r;}////统计图像中概率大于平均概率的灰度级数子函数 //// double lager(double p[]){int i;double sum=0;for(i=0;i<256;i++)if(p[i]>1.0/256) sum=sum+1;printf("图像中概率大于平均概率的灰度级数:%lf\n",sum);return sum;}////求非零概率的平均值的子函数////double average(double sum){double aver;aver=1.0/sum;printf("非零概率的平均值:%lf\n",aver);return aver;}////求非零概率的方差的子函数////double variance(double sum,double p[],double aver){int i;double asum=0,var;for(i=0;i<256;i++)if(p[i]!=0) asum=asum+pow((p[i]-aver),2);//printf("%lf\n",asum);var=asum/sum;printf("非零概率的方差:%lf\n",var);return var;}/////主函数//////int main(){FILE *fin,*fout;RGBQUAD colorPanel[256];PIXEL **bmpData;long i,j;double num[256]={0},p[256]={0},s[256]={0};double max,min,r,sum=0,asum=0,aver,psum=0,var;fin=fopen("1.bmp","rb");fread(&bfh,1,sizeof(BITMAPFILEHEADER),fin);fread(&bih,1,sizeof(BITMAPINFOHEADER),fin);fread(colorPanel,256,sizeof(RGBQUAD),fin);bmpData=(PIXEL **)malloc(bih.biHeight*sizeof(PIXEL *));for(i=0;i<bih.biHeight;i++){bmpData[i]=(PIXEL *)malloc(bih.biWidth*sizeof(PIXEL));fread(bmpData[i],bih.biWidth,sizeof(PIXEL),fin);}fclose(fin);////对图像进行直方图均衡////for(i=0;i<bih.biHeight;i++){ //二重循环遍历图象数据for(j=0;j<bih.biWidth;j++){num[bmpData[i][j].GRAY]++; //当前灰度级象素/总象素}}for(i=0;i<256;i++)p[i]=num[i]/bih.biWidth/bih.biHeight; //计算灰度概率s[0]=p[0];for(i=1;i<256;i++){s[i]=s[i-1]+p[i]; //计算累积概率(低灰度概率加到高灰度概率上)}for(i=0;i<256;i++){ //0~1映射到0~255s[i]=s[i]*255;for(j=0;j<256;j++){if(s[i]>=j-0.5&&s[i]<j+0.5)s[i]=j;}}for(i=0;i<bih.biHeight;i++){ //对原图像进行直方图均衡for(j=0;j<bih.biWidth;j++){bmpData[i][j].GRAY=(unsignedchar)s[bmpData[i][j].GRAY];}}////计算各个参数////sum=nonzero(p); //概率非零灰度数max=lmax(p); //概率非零灰度中最大概率min=lmin(p); //概率非零灰度中最小概率r=rate(max,min); //最大最小概率之比asum=lager(p); //图像中概率大于平均概率的灰度级数aver=average(sum); //非零概率的平均值var=variance(sum,p,aver); //非零概率的方差draw(s); //画灰度映射关系曲线fout=fopen("3.bmp","wb");fwrite(&bfh,1,sizeof(BITMAPFILEHEADER),fout);fwrite(&bih,1,sizeof(BITMAPINFOHEADER),fout);fwrite(colorPanel,256,sizeof(RGBQUAD),fout);for(i=0;i<bih.biHeight;i++)fwrite(bmpData[i],bih.biWidth,sizeof(PIXEL),fout);fclose(fout);return 0;}2.程序流程图:3.实验结果图像及对应参数:(1)图一:均衡前:均衡前直方图:灰度映射:对应参数:均衡后:均衡后的直方图:对应参数:均衡前后灰度映射关系:横轴表示均衡前的灰度,纵轴表示均衡后的灰度。

直方图均衡化和匹配报告

直方图均衡化和匹配报告

直方图均衡化和匹配报告一.实验目的:加强直方图均衡化和直方图匹配的图像增强技术的认识和了解; 学会用Matlab 中的下列函数对输入图像进行上述2类运算; 感受各种不同的直方图图像增强处理方法对最终图像效果的影响; 二.实验内容:1.熟悉Matlab 文件中有关Imhist 和histeq 函数的使用说明,充分理解其使用方法并能运用它们完成实验内容。

2.将mountain.jpg 图像文件读入Matlab ,对其作直方图均衡化。

显示运算前后该图像的直方图,处理后的图像。

3.对mountain.jpg 图像做直方图匹配运算,显示运算前后该图像的直方图,处理后的图像和灰度变换函数。

直方图反映灰度等级的分布情况,本实验指定的直方图如下:1400×rr ≤5 7000-310×r 5<r ≤20 900-5×r 20<r ≤180 -1440+8×r 180<r ≤225 3060-12×r225<r ≤2554.利用mountain.jpg 图像的直方图(imhist 函数可生成),编写直方图均衡化函数,显示灰度变换函数。

三.实验结果与分析:1.图像均衡化处理前后的直方图和图像对比原图像 均衡化后的图像n =原图像直方图均衡化后的直方图由处理后的图像可以看出,图像的灰度值减少,图像对比度明显增强,但是导致很多地方的细节模糊,看不清楚;而且有些地方过分增强,严重干扰清晰度。

2.直方图匹配处理前后图像对比原图像处理后图像原图像直方图直方图匹配运算后的直方图直方图匹配运算函数采用直方图匹配运算后,发现效果明显比直接均衡化的效果好的多,将一些重要的细节突出来了,对比度明显增强,但是有些地方色彩过于暗淡,灰度值过高,影响了图像的美观,但用于进行图像对比分析还是比较实用的。

3.编写的直方图均衡化函数,进行灰度变换原图处理后图像原图直方图处理后直方图最后一步通过自己编写的程序,对直方图进行均衡化,效果与第一步所取得的效果差不多是一致的。

实验三基于直方图均衡化的图像增强

实验三基于直方图均衡化的图像增强

实验三 基于直方图均衡化的图像增强一.实验目的1.了解空间域图像增强的各种方法(点处理、掩模处理);2.掌握采用直方图均衡化进行图像增强的方法;3. 使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;二.实验设备1.PC 机一台;2.软件matlab ;三.实验内容及步骤对如图3.1所示的两幅128×128、256级灰度的数字图像fing_128.img 和cell_128.img 进行如下处理:(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。

(2)对原图像加入点噪声,用4-邻域平均法平滑加噪声图像(图像四周边界不处理,下同),同屏显示原图像、加噪声图像和处理后的图像。

① 不加门限;② 加门限),(21n m f T =,(其中∑∑=i jj i f N n m f ),(1),(2) 实验程序及结果:(1)原图直方图均衡化处理:《1》Fing_128图像的处理前后图像及其直方图:程序:figure(1);fid=fopen('F:\数字图象处理\数字图像处理\ fing_128.img','r');data1=(fread(fid,[128,128],'uint8'))';subplot(2,2,1)data2=uint8(data1);imshow(data2);subplot(2,2,2);imhist(data2);a=imadjust(data2,[0,0.5]);subplot(2,2,4);imhist(a);subplot(2,2,3);imshow(a,256); %显示均衡化图象,256可缺省《2》Cell_128图象的处理前后图像及其直方图:数字图象均衡化后,其直方图并非完全均匀分布,这是因为图象的象素个数和灰度等级均为离散数值;而且均衡化使灰度级并归,因此,均衡化后,其直方图并非完全均匀分布。

实验二灰度直方图及直方图均衡化

实验二灰度直方图及直方图均衡化

实验二灰度直方图及直方图均衡化一、实验目的1. 直方图的显示2. 计算并绘制图像直方图3. 直方图的均衡化二、实验内容灰度直方图用于显示图像的灰度值分布情况,是数字图像处理中最简单和最实用的工具。

MATLAB 中提供了专门绘制直方图的函数imhist()。

1. 直方图的显示imshow('F:\标准图片\baboon.tif');title('原图像')%显示原图像A=imread('F:\标准图片\baboon.tif');figure;imhist(A);title('对应直方图')原图像500100015002000250030003500对应直方图0501001502002502. 计算并绘制图像直方图A :用bar 函数显示A=imshow('F:\标准图片\baboon.tif');h=imhist(A);h1=h(1:10:256);horz=1:10:256;bar(horz,h1)%用bar 函数显示axis([0 255 0 15000])%设置水平轴和垂直轴的最大值和最小值set(gca,'xtick',0:50:255)set(gca,'xtick',0:2000:15000)用bar 函数显示图像0050001000015000B :用stem 函数显示A=imshow('F:\标准图片\baboon.tif');h=imhist(A);h1=h(1:10:256);horz=1:10:256;stem(horz,h1,'fill')%用stem 函数显示axis([0 255 0 15000])%设置水平轴和垂直轴的最大值和最小值set(gca,'xtick',[0:50:255])set(gca,'xtick',[0:2000:15000])用stem 函数显示050001000015000B :用plot 函数显示A=imshow('F:\标准图片\baboon.tif');h=imhist(A);plot(h)axis([0 255 0 15000])%设置水平轴和垂直轴的最大值和最小值set(gca,'xtick',[0:50:255])set(gca,'xtick',[0:2000:15000])用plot 函数显示0500010000150003. 直方图均衡化imshow('F:\标准图片\baboon.tif');title('原图像')I=imread('F:\标准图片\baboon.tif ','tif');figure;imhist(I),title('对应直方图')%从得到的直方图可以看出,图像的对比度很低,灰度级集中在70-160 范围内, 如果只取%这个范围内的灰度,并扩展到[0,255],则会明显增强图像对比度J=imadjust(I,[70/255 160/255],[]);figure;imshow(J),title('经灰度级调整后的图')figure;imhist(J),title('灰度级调整后的直方图')%MATLAB 还提供了histeq 函数(自动直方图均衡化)K=histeq(I);figure;imshow(K),title('经直方图均衡化后的图')figure;imhist(K),title('直方图均衡化后的直方图')原图像500100015002000250030003500对应直方图050100150200250经灰度级调整后的图10002000300040005000600070008000900010000灰度级调整后的直方图050100150200250经直方图均衡化后的图0500100015002000250030003500400045005000直方图均衡化后的直方图050100150200250。

实验3 图像的直方图均衡化

实验3  图像的直方图均衡化

实验3 图像的直方图均衡化一、实验目的:理解直方图的概念,利用Matlab获取和绘制图像的直方图,并进行直方图均衡化处理。

二、实验内容:学习并应用imhist, histeq等函数进行直方图处理三、实验要求:提交原图像和各种直方图曲线,以及按直方图处理后的图像。

四、实验步骤1、生成并绘制图像的直方图在处理图像直方图的工具箱中,核心函数是imhist,其基本语法为:h=imhist(f,b)。

其中,f为输入图像,h为其直方图,b是用于形成直方图的灰度级的个数,默认值为256。

例如,若我们要处理一幅uint8类图像并令b=2,则亮度范围被分成两部分:0至127和128至255。

所得的直方图将有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[128,255]内的像素总数。

使用p=imhist(f,b)/numel(f)可以得到归一化直方图。

函数numel(f)给出数组f 中的元素个数(即图像中的像素数)。

(1)阅读imhist的帮助文件;(2)读入一幅图像,使用imhist( )函数产生图像的直方图,分析它的直方图分布及反映图像的特点;(3)使用imadjust( )函数产生图像的对比度图,并使用imhist( )函数产生两个图像的直方图,分析图像对比度变化后的效果;实验结果:>> I=imread('C:\Documents and Settings\Administrator\桌面\实验\图像库\tif\boats720x576.tif'); >> J=histeq(I); %对原图像进行直方图均衡化处理%对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅subplot(2,2,1);imshow(I); %显示原图像title('原图像'); %给原图像加标题名subplot(2,2,2);imshow(J);title('直方图均衡化后的图像') ;subplot(2,2,3);imhist(I,64); %将原图像直方图显示为64级灰度title('原图像直方图') ; %给原图像直方图加标题名subplot(2,2,4);imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度title('均衡变换后的直方图') ; %给均衡化后图像直方图加标题名原图像直方图均衡化后的图像01002004原图像直方图0100200050001000015000均衡变换后的直方图2、直方图均衡化直方图均衡化由工具箱中的函数histeq 实现,该函数语法为g=histeq(f,nlev)。

实验报告2:直方图的均衡

实验报告2:直方图的均衡

实验报告1.数字图像直方图均衡的算法原理直方图均衡的主要原理是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,通过将不同灰度值的像素数量进行统计,并将图像的像素值进行重新分配,把一定范围的像素过于密集的灰度值重新分配到较广的灰度区域内,使得整体灰度范围内每个灰度值的像素数量基本相同。

2.数字图像直方图均衡的算法步骤I.设均衡前图像在(x,y)处灰度值为f(x,y),均衡后图像的灰度值为g(x,y)II.设直方图变换函数为g(x,y)=M(f(x,y))III.令M(t)在(0,L-1)上单调递增,且使得f(x,y)和g(x,y)均属于(0,L-1)。

IV.计算每个灰度级的频数p(x,y)=f(x,y)/NV.此时计算累计分布函数C(x,y)=Σp(x,y)VI.利用M(t)计算均衡后的灰度级:g(x,y)=INT[(gmax-gmin)C(x,y)+gmin+0.5]3.MATLAB代码对RGB通道独立地进行直方图均衡的代码实现:RGB=imread('yuanban.jpg');R=RGB(:,:,1);G=RGB(:,:,2);B=RGB(:,:,3);subplot(4,2,1),imshow(RGB);title('原始真彩色图像');subplot(4,2,3),imshow(R);title('真彩色图像的红色分量');subplot(4,2,4), imhist(R);title('真彩色图像的红色分量直方图');subplot(4,2,5),imshow(G);title('真彩色图像的绿色分量');subplot(4,2,6), imhist(G);title('真彩色图像的绿色分量直方图');subplot(4,2,7),imshow(B);title('真彩色图像的蓝色分量');subplot(4,2,8), imhist(B);title('真彩色图像的蓝色分量直方图');r=histeq(R);g=histeq(G);b=histeq(B);figure,subplot(3,2,1),imshow(r);title('红色分量均衡化后图像');subplot(3,2,2), imhist(r);title('红色分量均衡化后图像直方图');subplot(3,2,3),imshow(g);title('绿色分量均衡化后图像');subplot(3,2,4), imhist(g);title('绿色分量均衡化后图像直方图');subplot(3,2,5), imshow(b);title('蓝色分量均衡化后图像');subplot(3,2,6), imhist(b);title('蓝色分量均衡化后图像直方图');figure,newimg = cat(3,r,g,b);imshow(newimg,[]);title('均衡化后分量图像还原输出原图');4.均衡效果对比:原图:Matlab直方图均衡后效果图:PS均衡后效果图:差别:原图颜色较暗,并且大部分区域灰度值偏低,仅有部分地方灰度值较亮。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基 于 直 方 图 的 灰 度 级 修 正
班 姓 学
级: 名: 号:
电子信息科学与技术 0901 班
设计时间:
2012 年 5 月 24 日
一 设计课题:
基于直方图的灰度级修正
二 设计内容及要求:
实验原理: 1. 直方图均衡化处理技术是用累积分布函数作变换函数的直方图修正方法; 2.用累积分布函数作为变换函数可产生一幅灰度级分布具有均匀概率密度 的图像。 均衡步骤: 1、统计原始图像的直方图,求出 Pr (rk ) ; 2、用累积分布函数作变换 s k Pr (r j ) ,求变换后的新灰度;

总结
此程序,只是对 DAT 文件进行处理,使用范围比较窄,因为程序是用 fopen 打开的,它打开其它格式文件,会有文件的头信息。要想改进可以用 imread 打 开图像文件,这样可以打开*.bmp,*.jpg,*.jpeg,*.png 等格式文件。本程序图像 显示,必须是以 N*N 个数据的 DAT 为前提。 但是对 DAT 文件处理可以利用 fopen 打开文件的特点, 简便程序算法, 处理 起来比较方便,效率高得多。
图 18 原始图像直方图
图 19 图像均衡后直方图
2. couple 图像 (1)正常
图 20 原始图像直方图
图ቤተ መጻሕፍቲ ባይዱ21 图像均衡后直方图
(2)高亮度
图 22 原始图像直方图
图 23 图像均衡后直方图
(3)偏暗
图 24 原始图像直方图
图 25 图像均衡后直方图
3. NBA 图像 (1)正常
图 26 原始图像直方图
图 27 图像均衡后直方图
(2)高亮度
图 28 原始图像直方图
图 29 图像均衡后直方图
(3)偏暗
图 30 原始图像直方图
图 31 图像均衡后直方图
结果分析:
通过几个图像显示结果可以看出:直方图均衡结果使图像亮度有所提高,所 以它对比较暗的图像显示的更加清晰,而太亮的图像或曝光过度的图像,经过直 方图均衡,效果不是很好,但是轮廓勾画的会明显些。 通过各直方图统计结果可见,利用累积分布函数作为灰度变换函数,经变换 后得到的新灰度的直方图虽然不很平坦,但毕竟比原始图像的直方图平坦得多, 而且其动态范围也大大地扩展了。 因此这种方法对于对比度较弱的图像进行处理 是很有效的。对于有一个灰度值所占比例很大的情况下,均很效果反而不好。
三 程序设计及其说明:
本程序采用 matlab GUI 绘图来实现,操作界面、菜单内容如下:
图 1 操作界面
图 2 菜单内容
程序特色:
1. 原始图像灰度直方图统计算法一 for l=0:255 for i=1:row if fid(i,1)==l h(l+1)=h(l+1)+1; end end end 2. 原始图像灰度直方图统计算法二 for i=1:row h(fid(i)+1)=h(fid(i)+1)+1; end 由主要代码部分可以看出:算法二算法复杂度很小,这是利用 fopen 打开文件的 特色来决定的,它读入数组时是 m 行 1 列。

实验结果及分析:
灰度直方图统计:
原始图像与均衡后图像灰度直方图(以 LENA 女孩图像为例)
图 3 原始图像直方图
图 4 图像均衡后直方图
不同亮度图像直方图均衡效果显示
1. LENA 图像 (1)正常
图 5 LENA 正常 原始及均衡后图像显示
(2)高亮度
图 6 LENA 高光 原始及均衡后图像显示
(3)偏暗
图 7 LENA 偏暗 原始及均衡后图像显示
2. couple 图像 (1)正常
图 8 couple 正常 原始及均衡后图像显示
(2)高亮度
图 9 couple 高亮 原始及均衡后图像显示
(3)偏暗
图 10 couple 偏暗 原始及均衡后图像显示
3. NBA 图像 (1)正常
图 11 NBA 正常 原始及均衡后图像显示
(2)高亮度
图 12 NBA 高亮 原始及均衡后图像显示
(3)偏暗
图 13 NBA 偏暗 原始及均衡后图像显示
不同亮度的原始图像与均衡后图像灰度直方图
1. LENA 图像 (1)正常
图 14 原始图像直方图
图 15 图像均衡后直方图
(2)高亮度
图 16 原始图像直方图
图 17 图像均衡后直方图
(3)偏暗
j 0 k
3、用新灰度代替旧灰度,求出 Ps ( sk ) ,这一步是近似的,力求合理,同时把 灰度相等的或相近的合在一起。 设计要求: 1. 利用 fopen 等函数打开*.dat 文件, 采用 for 循环统计图像里各灰度级的个 数,并用换图函数表示出来。 2. 将打开的图像,采用直方图均衡对原始图像进行灰度级转换,并绘出其 灰度直方图。
相关文档
最新文档