matlab 直方图均衡实验报告
- 格式:pdf
- 大小:1.28 MB
- 文档页数:12
实验一直方图均衡化一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,做出均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验代码及结果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实现学院:信息科学技术学院专业班级:2010级计算机科学与技术专业直方图均衡化的matlab实现摘要直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的图像增强方法。
为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,本文采用直方图均衡化的图像增强的基本理论原理,在matlab环境下,对数字图像进行直方图均衡化处理。
实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。
关键词:直方图,均衡化,matlab引言图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。
在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。
图像增强技术根据增强处理过程所在的空间不同,可分为基于空间域的算法和基于频率域的算法两大类。
基于空间域的算法分为点运算算法和邻域去噪算法。
点运算算法即灰度级校正、灰度变换和直方图均衡化等,目的或使图像成像均匀,或扩大图像动态范围,扩展对比度。
直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,增强效果好。
本文讨论了空间域的直方图均衡化增强方法,并用matlab 进行了实现。
1.论文目的1.1通过直方图以及均衡化的理论原理,用matlab实现直方图均衡化;1.2 在加深对直方图以及均衡化的理论原理知识理解的基础上,学会运用已学的知识设计直方图均衡化实验并对结果进行分析,并用实验的结果来说明直方图均衡化的特点和应用。
2.直方图理论灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。
确定图像像元的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像元数或该像元数占总像元数的比例值,做出的条形统计图即为灰度直方图。
电信信息工程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);
运行结果(截图)
同一个图像窗口左右显示处理前后的图像。
实验一直方图均衡化一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,做出均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验代码及结果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完整程序(数字图像处理)一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%函数功能,画出图像的直方图,并对图像进行直方图均衡%直接读图像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的编辑器中输入程序,保存。
实验一图像的直方图均衡一、实验目的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('均衡化后图像'); 画出均衡后的图像直方图;。
学院:自动化学院班级:电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.数字图像直方图均衡化之后直方图为什么不是绝对平坦的?答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。