直方图图像处理实验报告
- 格式:doc
- 大小:143.00 KB
- 文档页数:5
图像处理实习报告篇一:数字图像处理实习报告目录1、图像直方图实验 (1)2、图像的傅立叶变换实验 .......................................... 23、直方图均衡化实验 .................................................. 5 4.图像空间平滑实验 .................................................. 6 5.图像空间锐化实验.................................................. 8 6、图像分割实验-.................................................... 12 7、图像分割实验二 (17)1、图像直方图实验一、实验目的1.在ENVI软件中观察图像的灰度直方图,结合图像掌握直方图的性质和应运。
2.学有余力的同学可采用自己熟悉的开发语言如matlab,IDL等自己制作图像的灰度直方图。
二、实验素材ENVI软件,图像三、实验原理灰度直方图反映的是灰度级函数,描述的是图像中该灰度级的像素个数,它是图像的重要特征之一,反映了图像灰度分布情况。
任何一张图像都对应着唯一的灰度直方图,但不同的图像可以对应相应的直方图,可以用实验来验证。
四、实验过程下图为实验步骤截图:1五、实验心得:通过本次试验学会在Envi软件中查看图像的灰度直方图,在灰度直方图上,准确的反映了图像灰度分布的情况。
2、图像的傅立叶变换实验一、实验目的理解傅立叶变换的原理和傅里叶变换的使用,掌握运用ENVI进行傅立叶变换及频率域平滑和锐化的步骤和方法。
二、实验素材2Envi 软件,图像三、实验原理傅立叶变换原理:连续:反变换:F{f(x)}?F(u)??f(x)e?j2?uxdxj?1f(x)?F?1{F(u)}??F(u))ej2?uxdu1F(u)?N离散:f(x)?反变换:x?0N?1f(x)e?j2?ux/Nj2?ux/NN?1x?0F(u)e四、实验过程:利用傅立叶变换方法进行图像异常(高频)信息提取:1、打开ENVI4.7,单击FILE菜单,在下拉菜单中选择open image file 选项,单击打开自己的图像文件。
图像直方图实验报告实验目的本实验旨在通过使用Python编程语言对图像直方图进行分析和可视化,加深对图像亮度分布的理解,并通过实验结果来探索不同图像的特点和相似性。
实验步骤1. 导入必要的库在开始实验之前,首先需要导入所需的Python库,包括numpy、matplotlib.pyplot和cv2。
可以使用以下代码导入这些库:import numpy as npimport matplotlib.pyplot as pltimport cv22. 读取图像数据选择一张感兴趣的图像作为实验对象,并使用cv2库中的imread()函数读取图像数据。
例如,可以使用以下代码读取名为image.jpg的图像:image = cv2.imread('image.jpg', 0)3. 计算图像直方图使用numpy库中的histogram()函数计算图像的直方图。
直方图是一个表示图像亮度级别频率分布的数组。
可以使用以下代码计算直方图:histogram = np.histogram(image.flatten(), bins=256, range=[0, 256])上述代码将返回一个包含图像直方图数据的数组。
4. 可视化直方图使用matplotlib.pyplot库中的bar()函数将图像直方图可视化。
可以使用以下代码绘制直方图:plt.figure()plt.title('Image Histogram')plt.xlabel('Bins')plt.ylabel('Frequency')plt.bar(histogram[1][:-1], histogram[0], width=1, color='gray')plt.show()上述代码将绘制一个表示图像亮度级别频率分布的直方图。
5. 结果分析通过观察直方图,可以分析图像的亮度特性和分布情况。
光学图像处理实验报告第一篇:光学图像处理实验报告光学图像处理实验报告直方图均衡化的研究一、摘要直方图均衡化就是把一已知灰度概率分布的图像经过一种变换,使之演变成一幅具有均匀灰度概率分布的新图像。
它是以累积分布函数变换法为基础的直方图修正法。
分析和总结灰度直方图的均衡化算法并通过VC++实验验证该方法能有效达到图像增强的目的。
对于较为暗淡的图像,采用直方图均衡化能够增强其整体对比度,获的较为理想的观察效果。
二、关键字灰度统计直方图均衡化三、实验原理1、直方图的理论基础:(1)直方图概念:灰度直方图表示图像中每种灰度出现的频率。
(2)直方图的作用:反映一幅图像的灰度分布特性n(3)直方图的计算:p(rk)=k0≤rk≤1k=0,1,2,Λ,l-1 n式中:nk为图像中出现rk级灰度的像素数,n是图像像素总数,而nk/n即为频数。
2、设计目的:产生一幅灰度级分布具有均匀概率密度的图像,扩展像素取值的动态范围,达到了图象增强的目的。
3、直方图均衡化的效果:1)变换后直方图趋向平坦,灰级减少,灰度合并。
2)原始象含有象素数多的几个灰级间隔被拉大了,压缩的只是象素数少的几个灰度级,实际视觉能够接收的信息量大大地增强了,增加了图象的反差。
同时,也增加了图象的可视粒度。
4、离散情况下的直方图均衡化的算法:A、列出原始图像的灰度级 fj,j=0,1,Λ,L-1B、统计各灰度级的像素数目 nj,j=0,1,Λ,L-1C、计算原始图像直方图各灰度级的频数 Pf(fj)=nj/n,j=0,1,Λ,L-1kD、计算累积分布函数 C(f)=j=0Pf(fj),j=0,1,Λ,k,ΛL-1F、应用以下公式计算映射后的输出图像的灰度级,P为输出图像灰度级的个数,其中INT为取整符号:gi=INT[(gmax-gmin)C(f)+gmin+0.5] G、用的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像。
∑四、实验内容及源程序1、灰度分布密度的统计程序代码如下:/*********************************************** *函数名称:ZhiFangTu(float *tongji)*函数类型:void *变量说明:tongji,灰度分布密度统计 *功能:对图像进行灰度直方图统计***********************************************/ void CAAAView::OnZhifangtu(float *tongji){ // TODO: Add your command handler code hereint huidu[256];//灰度计数CAAADoc* pDoc = GetDocument();LPSTR lpDIB;LPSTRlpDIBBits;lpDIB =(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());lpDIBBits = ::FindDIBBits(lpDIB);//原图数据区指针int iH,iW;memset(huidu,0,sizeof(huidu));//变量初始化iH = ::DIBHeight(lpDIB);//宽iW = ::DIBWidth(lpDIB);//长LPBYTE temp1=new BYTE[iH*iW];//新图像缓冲区memcpy(temp1,lpDIBBits,iH*iW);//复制原图像到缓冲区for(int i=0;i{ for(int j=0;j{unsigned char temp;temp=temp1[iW*i+j];//灰度统计计数huidu[temp]++;} } for(i=0;i<256;i++)//统计灰度分布密度tongji[i]=huidu[i]/(iH*iW*1.0f);}2、直方图分布的均衡化(1)统计直方图数组,用一个数组p记录p[i];(2)i从1开始,令s[i]=s[i-1]+p[i];(3)一个数组L记录新的s的索引值,即令L[i]=s[i]*(256-1);(4)依次循环每个像素,取原图的像素值作为数组L的下标值,取该下标值对应的数组值作为均衡化之后的像素值。
关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。
通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。
下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。
通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。
2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。
我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。
3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。
通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。
4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。
通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。
5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。
通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。
6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。
通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。
7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。
通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。
8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。
数字图像处理实验报告直方图匹配规定化直方图均衡化能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。
实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。
这时可以采用比较灵活的直方图规定化。
一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。
所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。
所以,直方图修正的关键就是灰度映像函数。
直方图匹配方法主要有3个步骤(这里设M和N分别为原始图和规定图中的灰度级数,且只考虑N≤M的情况):(1) 如同均衡化方法中,对原始图的直方图进行灰度均衡化:(2) 规定需要的直方图,并计算能使规定的直方图均衡化的变换:(3) 将第1个步骤得到的变换反转过来,即将原始直方图对应映射到规定的直方图,也就是将所有pf(fi)对应到pu(uj)去。
一、A图直方图规定B图Matlab程序:%直方图规定化clear allA=imread('C:\Users\hp\Desktop\A.tif'); %读入A图像imshow(A) %显示出来title('输入的A图像')%绘制直方图[m,n]=size(A); %测量图像尺寸B=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255B(k+1)=length(find(A==k))/(m*n); %计算每级灰度出现的概率,将其存入B中相应位置endfigure,bar(0:255,B,'g'); %绘制直方图title('A图像直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.015])C=imread('C:\Users\hp\Desktop\B.tif');%读入B图像imshow(C) %显示出来title('输入的B图像')%绘制直方图[m,n]=size(C); %测量图像尺寸D=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255D(k+1)=length(find(C==k))/(m*n); %计算每级灰度出现的概率,将其存入D中相应位置endfigure,bar(0:255,D,'g'); %绘制直方图title('B图像直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.015])S1=zeros(1,256);for i=1:256for j=1:iS1(i)=D(j)+S1(i); %计算B灰度图累计直方图endendcounts=Bfigure,bar(0:255,counts,'r')title('A图像直方图 ')S2=zeros(1,256);for i=1:256for j=1:iS2(i)=counts(j)+S2(i);endend; %"累计"规定化直方图%对比直方图,找到相差最小的灰度级for i=1:256for j=1:255if S1(j)<=S2(i)&S1(j+1)>=S2(i)if abs(S1(j)-S2(i))<=abs(S1(j+1)-S2(i)) T(i)=j;else T(i)=j+1;endendendend%确定变换关系,重组直方图H=zeros(1,256);H(1)=S2(1);for i=2:255if T(i-1)>0for k=(T(i-1)+1):T(i)H(i)=H(i)+D(k);endelse H(i)=0;endendfigure,bar(0:255,H,'g') %显示规定化后的直方图title('A规定B后的直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.6])%显示规定图PA=C; %将各个像素归一化后的灰度值赋给这个像素for i=1:mfor j=1:nfor k=2:255if T(k-1)<=C(i,j)&C(i,j)<=T(k)PA(i,j)=k;break;endendendendfigure,imshow(PA) %显示规定化后的图像title('A规定B后图像')imwrite(PA,'guidinghua.bmp');二、用已知直方图规定A图规定灰度为[zeros(1,49),0.3,zeros(1,49),0.1,zeros(1,49),0.2,zeros(1,49),0.1,zeros(1,49 ),0.2,zeros(1,49),0.1]Matlab程序:clear allA=imread('C:\Users\hp\Desktop\B.tif'); %读入A图像imshow(A) %显示出来title('输入的A图像')%绘制直方图[m,n]=size(A); %测量图像尺寸B=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255B(k+1)=length(find(A==k))/(m*n); %计算每级灰度出现的概率,将其存入B中相应位置endfigure,bar(0:255,B,'g'); %绘制直方图title('A图像直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.015])S1=zeros(1,256);for i=1:256for j=1:iS1(i)=B(j)+S1(i); %计算原灰度图累计直方图endendcounts=[zeros(1,49),0.3,zeros(1,49),0.1,zeros(1,49),0.2,zeros(1,49),0.1,zer os(1,49),0.2,zeros(1,49),0.1];%规定化直方图figure,bar(1:300,counts,'r')title('规定化直方图')S2=zeros(1,256);for i=1:256for j=1:iS2(i)=counts(j)+S2(i);endend; %"累计"规定化直方图%对比直方图,找到相差最小的灰度级for i=1:256for j=1:256if S1(j)<=S2(i)&S1(j+1)>=S2(i)if abs(S1(j)-S2(i))<=abs(S1(j+1)-S2(i)) T(i)=j;else T(i)=j+1;endendendend%确定变换关系,重组直方图H=zeros(1,256);H(1)=S2(1);for i=2:256if T(i-1)>0for k=(T(i-1)+1):T(i)H(i)=H(i)+B(k);endelse H(i)=0;endendfigure,bar(0:255,H,'g') %显示规定化后的直方图title('规定化后的直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.6])%显示规定图PA=A; %将各个像素归一化后的灰度值赋给这个像素for i=1:mfor j=1:nfor k=2:256if T(k-1)<=A(i,j)&A(i,j)<=T(k)PA(i,j)=k;break;endendendendfigure,imshow(PA) %显示规定化后的图像title('规定化后图像')imwrite(PA,'guidinghua.bmp');。
实验三直方图一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验程序1.函数功能,画出图像的直方图,并对图像进行直方图均衡2.直接读图像football.jpg,读到I中3.graydis是原始直方图各灰度级像素个数4.原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro5.t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标6.new_graydis是统计新直方图各灰度级像素个数7.计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro8.计算直方图均衡后的新图new_J程序如下:I=imread('football.jpg'); %读入图片J=rgb2gray(I); %将彩色图片转换为灰度图Imshow(J);graydis=zeros(1,256); %设置矩阵大小graydispro=zeros(1,256);new_graydis=zeros(1,256);new_graydispro=zeros(1,256);[h w]=size(J);new_J=zeros(h,w);%计算原始直方图各灰度级像素个数graydisfor x=1:hfor y=1:wgraydis(1,J(x,y))=graydis(1,J(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_J for x=1:hfor y=1:wnew_J(x,y)=t(1,J(x,y));endendfigure,imshow(J,[]);title('原图');figure,imshow(new_J,[]);title('直方图均衡化后的图');。
计算机与信息工程学院验证性实验报告一、实验目的1.掌握灰度直方图的概念及其计算方法;2.熟练掌握直力图均衡化和直方图规定化的计算过程;3.熟练掌握空域滤波中常用的平滑和锐化滤波器;4.掌握色彩直方图的概念和计算方法5.利用MATLAB程序进行图像增强。
二、实验原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。
直方图是多种空间城处理技术的基础。
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。
直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。
灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。
直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
下面给出直方图均衡化增强图像对比度的MATLAB程序:clc;clear allI=imread('Fig0308(a)(pollen).tif'); %读入原图像J=histeq(I); %对原图像进行直方图均衡化处理imshow(I); %显示原图像title('原图像'); %给原图像加标题名%对原图像进行屏幕控制;显示直方图均衡化后的图像figure;imshow(J);%给直方图均衡化后的图像加标题名title('直方图均衡化后的图像') ;%对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅figure; subplot(1,2,1) ;imhist(I,64); %将原图像直方图显示为64级灰度title('原图像直方图') ; %给原图像直方图加标题名subplot(1,2,2); %作第2幅子图imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度title('均衡变换后的直方图') ; %给均衡化后图像直方图加标题名处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。
实验名称:直方图的修正一、实验内容1、对影像进行直方图的均衡化;2、利用另外一幅影像进行直方图的匹配;3、利用直方图统计功能对结果进行分析。
二、实验所用的仪器设备遥感处理ENVI软件,遥感影像bhtmref.img文件三、实验原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本次实验以直方图的均衡化和规定化的方法为主要内容。
1、图象灰度的直方图:横坐标为灰度级,纵坐标为概率建立的图形2、直方图的修正包括:1直方图均衡化 2直方图规定化直方图的均衡化又称平坦化,是将一已知灰度概率密度分布影像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新影像,其结果是扩大了象元取值的动态范围;直方图均衡化后的效果::①各灰度级所占图像的面积近似相等。
②原图像上频数小的灰度级被合并,频数高的灰度级则保留且不能被分割,因此可以增强图像上大面积地物与周围地物的反差。
③当输出数据分段级较少时,则会产生一些大类地物的大致近似的轮廓。
直方图的规定化是指将原始影像调整到事先规定的已知的形状,以此来对原始影像特定灰度范围进行增强处理。
四、实验步骤1.打开envi 软件,依次选择TM Band 4 ,TM Band3, TM Band 2得到该影像的标准假彩色合成图像,如图一所示:图一图二2、在Basic tools 里选择 statistics → computer statistics → Spectral Subset 选择4、3、2波段→勾选 covariance 、histogram 、output to a statistics (.sta)、output to a Text Report File (.txt)得到直方图及其计算数据如图二所示:由图二的直方图可看到每个灰度级的分布状况,并且有以下数据统计(在输出的txt文件中查看)(二)对bhtmref影像进行均衡化,并与原始图像进行对比1、选择enhance → [image]equalization 得到图像三save image as image file (equ_b.img)→open image file →在available bands list 中依次选择bhtmref1 的4、3、2波段→display #2→new play →load图三图四2、将bhtmref1 重复(一)的步骤得到均衡化后的直方图如图四所示由图四均衡化后的灰度直方图可得到以下数据对比分析:①均衡化后的图像比原始图像轮廓更为清晰,大面积地物与周围地物仍然存在强烈反差,影像效果更加明显。
图像直方图实验报告图像直方图实验报告一、引言图像直方图是一种用于分析和描述图像亮度分布的工具。
通过统计图像中不同亮度级别的像素数量,我们可以获得图像的亮度分布情况,从而更好地理解图像的特征和内容。
本实验旨在通过对不同图像的直方图分析,探索图像直方图在图像处理中的应用。
二、实验方法1. 实验材料本实验使用了三张不同类型的图像:一张自然风景图像、一张人物肖像图像和一张抽象艺术图像。
2. 实验步骤(1)打开图像处理软件,并导入所选图像。
(2)选择图像直方图功能,并生成图像的直方图。
(3)观察直方图的形状和分布情况,并记录下来。
(4)根据观察结果,分析图像的亮度特征和内容特点。
三、实验结果与分析1. 自然风景图像的直方图自然风景图像的直方图呈现出较为平均的分布,亮度分布范围广泛。
这表明该图像中包含了丰富的亮度细节,从明亮的天空到昏暗的山脉,再到黑暗的树林,图像中的各个部分亮度差异较大。
这种直方图特点与自然风景图像的特点相符,展示了大自然的多样性和丰富性。
2. 人物肖像图像的直方图人物肖像图像的直方图呈现出较为集中的分布,亮度主要集中在中间区域。
这表明该图像中的人物主体亮度较为均匀,没有明显的高光或阴影。
这种直方图特点与人物肖像图像的特点相符,突出了人物的面部特征和表情。
3. 抽象艺术图像的直方图抽象艺术图像的直方图呈现出较为离散的分布,亮度分布呈现出一定的规律性。
这表明该图像中存在着一些重复出现的亮度模式或纹理。
这种直方图特点与抽象艺术图像的特点相符,强调了艺术家对于形式和结构的探索。
四、实验总结通过对不同类型图像的直方图分析,我们可以发现图像直方图与图像内容和特征之间存在一定的关联性。
自然风景图像的直方图展示了大自然的多样性和丰富性,人物肖像图像的直方图突出了人物的面部特征和表情,抽象艺术图像的直方图强调了艺术家对于形式和结构的探索。
因此,在图像处理中,我们可以通过对图像直方图的分析,更好地理解图像的内容和特征,为后续的图像处理工作提供参考。
数字图像处理实验
实验一 直方图处理
实验目的
理解图像直方图的概念,掌握图像直方图的绘制方法
掌握直方图均衡化的原理,并会用直方图均衡化对图像进行处理。
实验要求
1.读入图像,可使用imread 。
2.输出图像,可使用imshow 。
3.绘制图像的归一化的直方图,可使用IPT 函数imhist 。
4.对图像进行直方图均衡化,可使用IPT 函数histeq ,对均衡化前后的图像以及直方图进行对比。
`
实验原理
一幅数字图像在范围[0, G ]内共有L 个灰度等级,其直方图定义为离散函数
k k n r h =)(
其中r k 是区间[0, G ]内的第k 级亮度,n k 是灰度级为r k 的图像中的像素数。
通常,我们会用到归一化直方图,即使所用所有元素h (r k )除以图像中的像素总数n 所得到的图形:
n
n n r h r p k k k ==)()( 其中k =1,2,…,L 。
Matlab 中提供了IPT 函数imhist 来绘制图像的直方图,但是除此之外绘制直方图的方法还有很多,可以通过条形图、杆状图等方式来表示直方图。
直方图均衡化主要用于增强动态范围偏小的图像的反差。
该方法的基本思想是把原始的直方图变换为均匀分布的形状,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。
直方图均衡化一般采用原始图的累计分布函数作为变换函数。
假设灰度级归一化至范围
[0, 1]内,p r (r )表示给定图像中的灰度级的概率密度函数,对于离散的灰度级,均衡化变换为:
;
∑∑=====k j j k j j r k k n n r p r T s 11)()(
式中k =1,2,…,L ,s k 是输出图像中的亮度值,它对应于出入图像中的亮度值r k 。
实验心得:
1. matlab 的函数的功能很强大,一个简单的函数调用就可以解决复杂的问题。
这样,就需要在函数调用时注意函数的参数,否则很容易出错。
比如函数 histeq(a,n),就要注意其中
的n为灰度值的个数。
2. 对于自己编写函数实现某些特定的功能时,需要对原理掌握清楚,如实验二中需自己编写函数实现图像的均衡,就要求对直方图的均衡原理掌握到位。
3. 使用读图像函数imread()时需注意该程序的物理路径和函数参数,即图像的物理路径需要保持一致。
4. 在代码中定义某些参数,可以扩大代码的使用范围,提高代码的灵活性。
例如,程序二中定义行,列和像素,则可以稍微修改参数的初始值,就可对不同行,列和像素的图像进行直方图均衡。
实验代码:
—
1. 实验一代码:
%读入位于D盘\image\tuxiang的lena图像
A=imread('D:\image\tuxiang\');
%将读入的彩色图像转化为灰度图像
a=rgb2gray(A);
%对图像进行直方图均衡化
b=histeq(a,256);
%绘制均衡化前后的图像及其直方图
subplot(2,2,1);
imshow(a);
¥
title('原始图像');
subplot(2,2,2);
imhist(a);
title('原始图像归一化直方图');
subplot(2,2,3);
imshow(b);
title('均衡化后的图像');
subplot(2,2,4);
[
imhist(b);
title('均衡化后图像的归一化直方图');
2. 实验一代码:
%读入位于D盘\image\tuxiang的lena图像
A=imread('D:\image\tuxiang\');
%将读入的彩色图像转化为灰度图像
a=rgb2gray(A);
row=512;%图像每列的像素点
"
col=512;%图像每行的像素点
n=255;%灰度个数
y=zeros(1,n+1);
z=zeros(1,n+1);
f=zeros(1,n+1);
%统计图像中每个灰度的像素点个数
for i=0:n
k=0;
for r=1:row
for c=1:col
【
if(a(r,c)==i)
k=k+1;
end
end
end
y(i+1)=k;
end
%映射函数
for p=1:n+1
for q=1:p
)
f(p)=f(p)+y(q);
end
f(p)=f(p)*n/(row*col);
end
%利用映射函数对图像实现均衡化
for s=1:row
for t=1:col
b(s,t)=f(a(s,t)+1);
end
end
、
%统计均衡化后的图像的每个灰度的像素点个数for j=0:n
h=0;
for r=1:row
for c=1:col
if(b(r,c)==j)
h=h+1;
end
end
end
&
z(j+1)=h;
end
%绘制均衡化前后的图像及其直方图subplot(2,2,1);
imshow(a);
title('原始图像');
subplot(2,2,2);
bar([0:n],y/(row*col));
title('原始图像归一化直方图');
《
subplot(2,2,3);
imshow(b);
title('均衡化后的图像');
subplot(2,2,4);
bar([0:n],z/(row*col));
title('均衡化后图像的归一化直方图');
实验结果:
1. 实验一
(1)原始图及其归一化直方图
(2)均衡化后的图像及其归一化直方图
2. 实验二
(1)原始图及其归一化直方图
(2)均衡化后的图像及其归一化直方图。