直方图图像处理实验报告
图像直方图实验报告
图像直方图实验报告实验目的本实验旨在通过使用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. 结果分析通过观察直方图,可以分析图像的亮度特性和分布情况。
图像处理实验报告一
一.图像的读入与直方图拓展>> clear;>> clear all;>> I=imread('pout.tif');>> imshow(I)>> whosName Size Bytes ClassI 291x240 69840 uint8 array Grand total is 69840 elements using 69840 bytes>> figure,imhist(I)>> I2=histeq(I);>> figure,imhist(I2)>> figure,imshow(I2)>> imwrite(I2,'pout.tif')>> imfinfo('pout.tif')ans =Filename: 'pout.tif'FileModDate: '19-Dec-2012 18:52:08'FileSize: 67816Format: 'tif'FormatVersion: []Width: 240Height: 291BitDepth: 8ColorType: 'grayscale'FormatSignature: [73 73 42 0]ByteOrder: 'little-endian'NewSubfileType: 0BitsPerSample: 8Compression: 'PackBits' PhotometricInterpretation: 'BlackIsZero'StripOffsets: [9x1 double]SamplesPerPixel: 1RowsPerStrip: 34StripByteCounts: [9x1 double]XResolution: 72YResolution: 72ResolutionUnit: 'Inch'Colormap: []PlanarConfiguration: 'Chunky'TileWidth: []TileLength: []TileOffsets: []TileByteCounts: []Orientation: 1FillOrder: 1GrayResponseUnit: 0.0100MaxSampleValue: 255MinSampleValue: 0Thresholding: 1二、同时读入若干幅图像,可以频繁使用figure,imshow;但若要求在同一窗口读入若干幅图像:则可调用subplot函数。
光学图像处理实验报告
光学图像处理实验报告第一篇:光学图像处理实验报告光学图像处理实验报告直方图均衡化的研究一、摘要直方图均衡化就是把一已知灰度概率分布的图像经过一种变换,使之演变成一幅具有均匀灰度概率分布的新图像。
它是以累积分布函数变换法为基础的直方图修正法。
分析和总结灰度直方图的均衡化算法并通过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的下标值,取该下标值对应的数组值作为均衡化之后的像素值。
数字图像处理实验报告直方图均衡化
数字图像处理实验报告实验名称:直方图均衡化姓名:班级:学号:专业:电子信息工程(2+2)指导教师:陈华华实验日期:2012年5月24日直方图均衡化图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。
直方图均衡化是最常见的间接对比度增强方法。
直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。
直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
缺点:1)变换后图像的灰度级减少,某些细节消失;2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。
通过这种方法,亮度可以更好地在直方图上分布。
这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。
设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。
在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。
这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。
(2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。
图形图像报告一直方图处理
昆明理工大学信息工程与自动化学院学生实验报告( 2012 —2013 学年第二学期)课程名称:图形图像基础开课实验室:信自楼444 2013 年 5月 15日一、实验目的及内容目的:掌握和熟悉Matlab编程环境及语言;掌握直方图统计的算法和用途。
内容:1.在Matlab中载入一副灰度图像,统计显示该图像的直方图。
2.对图像进行直方图均衡化处理,显示处理后的图像及直方图。
二、要求1.描述直方图的概念并解释直方图均衡化原理。
2.程序结构清晰,运行结果正确。
3.描述上述程序的设计、实现和结果,并对结果进行分析。
三、实验原理1.直方图的概念灰度直方图反映的是一幅图像中个灰度级像素出现的频率之间的关系。
以灰度级为横坐标,纵坐标为灰度级的频率,绘制频率和灰度级的关系图就是灰度直方图。
直方图的横轴从左到右代表照片从黑(暗部)到白(亮度)的像素数量,其左边最暗处的Level值为0,而右边最亮处的Level值为255。
直方图的垂直轴方向代表了在给定的Level值下的像素的数目。
频率的计算公式为:i v =n n i在以上公式中:i n 是图像中灰度级为i 的像素数,n 为图像的总像素数。
灰度直方图是图像的重要特征之一,它反应了图像灰度分布的情况。
2.直方图均衡化原理直方图均衡化是通过对原图进行某种变化使得原图像的灰度直方图修正为一种均匀的直方图的一种方法。
灰度直方图均衡化,简单地说,就是把直方图的每一个灰度级进行归一化处理,计算出每一个灰度的累积分布,得到一个映射的灰度映射表,然后根据相应的灰度值来修正原图的每个像素。
四、实验环境Windows 7、MATLAB 7.11.0(R2010b)五、实验内容(包含过程及解析)1. 熟悉Matlab 编程环境及语言1.在Matlab 中载入一副灰度图像,统计显示该图像的直方图。
(1)设置工作空间为:D:\softid\matlab\workspace ,将pollen.tif 放进工作空间。
数字图像处理实验-灰度直方图
实验一灰度直方图1.实验目的:(1)加强灰度直方图的图像增强技术的认识和了解;(2)掌握均衡化处理方法对图像做增强处理;2.实验内容:如下图所示是一张大脑的医学核磁共振( MRI)图像,原图由于对比度太低而使得大脑的内部组织层次不清,欲利用直方图均衡等方法对该图做增强处理,先编制出位图读取程序,对该图像进行灰度值统计,并在屏幕上绘制出相应的直方图。
3.实验结果(代码&结果可视化)1)编写程序设原始图像在x,y处的灰度为f而改变后的图像为g则对图像增强的方法即为在x,y处的灰度f映射为g在直方图均衡化处理中对图像的映射函数可以定义为g=Q(f), 即是一个累加分布函数CDF。
实际处理变换算法是先对原始图像的灰度情况进行统计分析并计算出原始直方图分布。
然后根据计算出的累计直方图分布求出f->g的灰度映射关系。
重复上述步骤得到原始图像所有灰度级到目标图像灰度级的映射关系后按照这个映射关系对原始图像各点像素进行灰度转换即可完成对原始图像的直方图均衡化。
具体算法:首先统计原始图像的各级灰度值在程序中定义了一个数组lCount[256]来统计原设计图像的各级灰度值,然后对得到的灰度值做灰度映射将映射后的结果存到一个新的灰度映射关系数组bMap[256]中根据这个数组就可以确定出原始图像的某个灰度级经过变换后对应于德灰度级,最后将变换后的结果保存到DIB中。
2)核心程序for (i = 0; i < lHeight; i ++){for (j = 0; j < lWidth; j ++){lpSrc = (unsigned char *)lpDIBBits + lLineBytes * i + j;lCount[*(lpSrc)]++; // 计数加1}}// 统计原设计图像的各级灰度值// 计算灰度映射关系for (i = 0; i < 256; i++){lTemp = 0; // 初始为0for (j = 0; j <= i ; j++){lTemp += lCount[j];}bMap[i] = (BYTE) (lTemp * 255 / lHeight / lWidth); // 计算对应的新灰度值}for(i = 0; i < lHeight; i++)// 每行{for(j = 0; j < lWidth; j++)// 每列{// 指向DIB 第i 行第j 个象素的指针lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;// 保存新的灰度值*lpSrc = bMap[*lpSrc];}}3)直方图绘制4.实验分析和总结直方图均衡化处理后图像的直方图较为平直,各灰度级的值相对均匀。
图像处理报告
1.原理
直方图均衡化是图像处理领域中利用图像直方图对比度进行图像增强的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。(代码见附件1)
b.中值滤波器
中值滤波是一种最常用的非线性平滑滤波器,其滤波原理是把邻域中的图像的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。
1.原理
其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值来替换,其主要功能是让周围像素灰度值差别比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点,所以中值滤波对于滤除图像的椒盐噪声非常有效。常规中值滤波器对长拖尾概率分布的噪声能起到良好的平滑效果。不仅如此,它在消除噪声的同时还具有保护边界信息的优点,对图像中的某些细节起到保护作用,因而在图像去噪处理中得到了比较广泛的应用。但是常规中值滤波去脉冲噪声的性能受滤波窗口尺寸的影响较大,而且它在抑制图像噪声和保护细节两方面存在一定的矛盾:取的滤波窗口越小,就可较好地保护图像中某些细节,但滤除噪声的能力会受到限制;反之,取的滤波窗口越大就可加强噪声抑制能力,但对细节的保护能力会减弱。(代码见附件3)
另外,拉普拉斯算子还可以表示成模板的形式,如图3-1所示。图3-1(a)表示离散拉普拉斯算子的模板,图3-1(b)表示其扩展模板,从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。(代码见附件4)
(精品)数字图像处理实验报告--直方图规定化
数字图像处理实验报告直方图匹配规定化直方图均衡化能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。
实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。
这时可以采用比较灵活的直方图规定化。
一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。
所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。
所以,直方图修正的关键就是灰度映像函数。
直方图匹配方法主要有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('直方图均衡化后的图');。
图像处理实习报告
图像处理实习报告篇一:图像处理综合实验报告专业综合实验报告——图像处理学院:专业:班级:学号:姓名:指导教师:XX.12.1实验二图像变换一、实验目的学习灰度变换修正图像的颜色和灰度的方法。
学习图像直方图的生成和修正技术的原理和实现方法,理解其对于观察图像的意义。
了解图像变换的意义和手段,熟练掌握傅里叶变换等图像正交变换方法,了解二维频谱的分布特点。
二、实验要求1.掌握灰度变换函数的用法,对图像进行灰度变换,增强对比度,显示变换前后的图像以及它们的灰度直方图。
2.选择一幅直方图不均匀的图像,对其作直方图均衡化处理,显示处理前后的图像以及它们的灰度直方图。
三、实验内容1.直方图均衡化处理I1=imread('h1.bmp'); % 读入原图像I2=imread('h2.bmp'); % 读入原图像I3=imread('h3.bmp'); % 读入原图像I4=imread('h4.bmp'); % 读入原图像J=histeq(I); %对原图像进行直方图均衡化处理imshow(I); %显示原图像title('原图像'); %给原图像加标题名figure,imshow(J); %对原图像进行屏幕控制;显示直方图均衡化后的图像 title('直方图均衡化所得图像'); %给直方图均衡化后的图像加标题名figure;subplot(121); %对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第imhist(I,64); %将原图像直方图显示为64级灰度 title('原图像直方图'); %给原图像直方图加标题名subplot(122); %作第2幅子图imhist(J,64); %将均衡化后图像的直方图显示为64级灰度 title(‘均衡变换后的直方图’); %给均衡化后图像直方图加标题名1幅图2. 显示图像频谱I=imread('chuizhi.bmp');%读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换sfftI=fftshift(fftI);%直流分量移到频谱中心RR=real(sfftI); %取傅立叶变换的实部II=imag(sfftI); %取傅立叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%归一化 figure; %设定窗口imshow(A); %显示原图像的频谱四、思考题1.直方图是什么概念?它反映了图像的什么信息?答:直方图是图像亮度分布的概率密度函数,是图像最基本的统计特征,它反映的是图像的灰度值的分布情况和图像的明暗分布规律,。
图像直方图实验报告
图像直方图实验报告图像直方图实验报告一、引言图像直方图是一种用于分析和描述图像亮度分布的工具。
通过统计图像中不同亮度级别的像素数量,我们可以获得图像的亮度分布情况,从而更好地理解图像的特征和内容。
本实验旨在通过对不同图像的直方图分析,探索图像直方图在图像处理中的应用。
二、实验方法1. 实验材料本实验使用了三张不同类型的图像:一张自然风景图像、一张人物肖像图像和一张抽象艺术图像。
2. 实验步骤(1)打开图像处理软件,并导入所选图像。
(2)选择图像直方图功能,并生成图像的直方图。
(3)观察直方图的形状和分布情况,并记录下来。
(4)根据观察结果,分析图像的亮度特征和内容特点。
三、实验结果与分析1. 自然风景图像的直方图自然风景图像的直方图呈现出较为平均的分布,亮度分布范围广泛。
这表明该图像中包含了丰富的亮度细节,从明亮的天空到昏暗的山脉,再到黑暗的树林,图像中的各个部分亮度差异较大。
这种直方图特点与自然风景图像的特点相符,展示了大自然的多样性和丰富性。
2. 人物肖像图像的直方图人物肖像图像的直方图呈现出较为集中的分布,亮度主要集中在中间区域。
这表明该图像中的人物主体亮度较为均匀,没有明显的高光或阴影。
这种直方图特点与人物肖像图像的特点相符,突出了人物的面部特征和表情。
3. 抽象艺术图像的直方图抽象艺术图像的直方图呈现出较为离散的分布,亮度分布呈现出一定的规律性。
这表明该图像中存在着一些重复出现的亮度模式或纹理。
这种直方图特点与抽象艺术图像的特点相符,强调了艺术家对于形式和结构的探索。
四、实验总结通过对不同类型图像的直方图分析,我们可以发现图像直方图与图像内容和特征之间存在一定的关联性。
自然风景图像的直方图展示了大自然的多样性和丰富性,人物肖像图像的直方图突出了人物的面部特征和表情,抽象艺术图像的直方图强调了艺术家对于形式和结构的探索。
因此,在图像处理中,我们可以通过对图像直方图的分析,更好地理解图像的内容和特征,为后续的图像处理工作提供参考。
直方图均衡化实验报告
直方图均衡化实验报告直方图均衡化实验报告引言:直方图均衡化是一种常用的图像处理技术,它可以增强图像的对比度和细节,使得图像更加清晰明亮。
本实验旨在通过实际操作验证直方图均衡化的效果,并探讨其在不同场景下的应用。
实验步骤:1. 图像获取与预处理:选择一张高对比度的彩色图像作为实验对象,通过图像处理软件将其转换为灰度图像。
确保图像的亮度范围适中,避免过亮或过暗的情况。
2. 直方图均衡化算法:实现直方图均衡化算法的代码,可以使用Python等编程语言。
算法的核心思想是将原始图像的像素值映射到新的像素值,使得新图像的直方图均匀分布在整个灰度范围内。
3. 实验结果展示:将经过直方图均衡化处理后的图像与原始图像进行对比展示。
通过观察图像的对比度、亮度和细节等方面的变化,评估直方图均衡化算法的效果。
实验结果与分析:经过直方图均衡化处理后,图像的对比度明显增强,细节更加清晰可见。
原本过亮或过暗的区域得到了适当的修正,使得整个图像的亮度分布更加均匀。
同时,图像中的细节也得到了突出,使得观察者能够更好地识别和分析图像中的内容。
在实际应用中,直方图均衡化可以用于图像增强、目标检测、图像匹配等领域。
例如,在安防监控系统中,直方图均衡化可以提高图像的对比度,使得目标物体更加明显,有利于目标检测和识别。
在医学图像处理中,直方图均衡化可以增强图像的细节,有助于医生对病灶的判断和诊断。
然而,直方图均衡化也存在一些局限性。
首先,直方图均衡化是一种全局操作,对整个图像进行处理,可能会导致某些局部细节的损失。
其次,直方图均衡化对于亮度变化较大的图像效果较差,可能会导致过度亮化或过度暗化的问题。
因此,在实际应用中,需要根据具体情况选择合适的图像处理方法。
结论:通过本次实验,我们验证了直方图均衡化在图像处理中的有效性。
直方图均衡化可以增强图像的对比度和细节,使得图像更加清晰明亮。
然而,直方图均衡化也存在一些局限性,需要根据具体情况选择合适的图像处理方法。
数字图像处理直方图均衡实验报告
数字图像报告班级:姓名:学号:一、直方图均衡:直方图均衡化也叫做直方图平坦化,是一种常用的灰度增强算法。
目的:曾强对比度目标:均匀分度原理:假设灰度级为归一化至范围[0,1]内的连续量,并令Pr (r)表示某给定图像中的灰度级的概率密度函数(PDF),其下标用来区分输入图像和输出图像的PDF。
假设我们对输入灰度级执行如下变换,得到(处理后的)输出灰度级s:S=T(r)=∫0r Pr(w)dw式中w 是积分的哑变量。
可以看出,输出灰度级的概率密度函数是均匀的,即a.当0≤s≤1 时,Ps(s)=1b.当s 为其他时,Ps(s)=0换言之,前述变换生成一幅图像,该图像的灰度级较为均衡化,且覆盖了整个范围[0,1]。
灰度级均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。
该变换函数只不过是一个累积分布函数(CDF)。
二、直方图均衡程序:clc主程序:picture=input('please input the filename:','s');fid=fopen(picture);dat=fread(fid);d=dat';B=reshape(d,256,256);h=length(d);newname=input('输入新的文件名:','s');zhi(h,newname,B,d);子程序:function y=zhi(h,newname,B,d)figure(1);imshow(uint8(B'));N=zeros(1,256);for i=0:255for j=1:hif i==d(j)N(i+1)=N(i+1)+1;endendendi=0:255;p=N/h;figure(2)stem(i,p,'.')title('原始直方图')m=zeros(1,256);for k=1:256if k==1m(k)=p(k);elsem(k)=m(k-1)+p(k);endendfor k=1:256r=round(m*255);ends=zeros(1,256);for a=1:256for b=1:256if r(a)==r(b)s(a)=N(a)+N(b);endendendq=s/h;for j=1:256k(j)=r(j);endfigure(3);stem(k,q,'.');title('均衡直方图');M=zeros(1,h);for i=1:hk=d(i);M(i)=r(k+1);endR=reshape(M,256,256);figure(4);imshow(uint8(R'));jht=fopen(newname,'wb');g=fwrite(jht,M);fclose('all');原图像原始直方图均衡直方图均衡后的图像:三、体会:通过本次设计,让我学会了从问题的高度来考虑设计的方方面面,对程序的设计和研究有了更深刻的体会;让我了解到程序的设计是建立在对理论知识了解的基础上的,特别是对直方图均衡化的原理要有较为详细的了解,此外对直方图均衡化算法也要进行了解;在编写程序时,进行模块化设计,以严谨的态度进行编程,避免出现低级错误。
图像处理实验报告
图像处理实验报告实实验报告实验课程名称图像处理(第二版)指指导老师邓天明学学院交通运输年级2012级专业及班级交通信息与控制工程二班学学生姓名田飞学号631205090230开开课时间2014至2015学年第2学期总总成绩教师签名实验名称直方图均衡化实验类型验证型实验时间2015/6/2实验地点基础实验楼北501实验目的:1.熟悉图像数据在计算机中的存储方式;2.掌握图像直方图均衡化这一基本处理过程。
仪器、设备名称:PC微机一台和MATLAB软件。
实验要求及注意事项:本次实验注意事项总结如下:1、要学会利用Matlab中的帮助信息,因为很多函数的调用方法都是可以在帮助中找到的。
在调用函数时应重点看Examples中的方式。
2、在Matlab中进行重复操作时,可以用方向上键重复命令,也可以在命令窗口中进行复制粘贴。
3、使用软件处理图像时,注意不要使用复杂图像,以免处理时间过长且显示效果不理想。
实验内容、操作步骤:1.读入图像数据到内存中,并显示读入的图像;2.实现直方图均衡化处理,显示处理前后图像的直方图。
3.显示并保存处理结果。
实验步骤:1.打开Matlab编程环境;2.获取实验用图像。
用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。
3.获取输入图像的直方图:用’imhist’函数处理图像。
4.均衡化处理:用’histeq’函数处理图像即可。
5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。
6.保存实验结果:用’imwrite’函数处理。
实验结果分析(含数据、图表整理):程序源代码:A=imread(‘D:\\TF.gif’,‘gif’);imshow(A);imhist(A);histeq(A);Im hist(A);Imshow(A);Imwrite(A,‘D:\TF.gif’,‘GIF’);处理结果:图1灰度图图2均衡化图图3直方图实验收获、心得及建议:直方图均衡化是直方图变换方法中的一种,进行图像增强的方法是以概率论为基础的。
图像处理实验报告实验报告
一、实验目的1、熟悉位图文件的文件格式,掌握位图数据读取并在屏幕上显示的方法。
2、掌握在计算机上进行直方图均衡化以及线性增强的方法。
3、通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。
4、熟练掌握应用MATLAB软件编程进行图像处理。
二、实验环境一台pc机,MATLAB软件编程环境。
三、实验内容1、图像的现实和读取:运用MATLAB软件编程,读取指定的256色灰度图像的数据,显示该文件的文件头和信息头数据的值,并在屏幕上显示该图象。
2、直方图的显示和均衡化:运用MATLAB软件编程,实现内容1中图像直方图的显示和均衡化。
3、图像分割:使用Prewitt 算子、Sobel 算子对图像进行边缘检测处理,完成图像分割实验。
4、图像增强:编写线性增强的程序及相应的显示程序,对指定图象进行线性增强,将原始图象及增强后的图象都显示于屏幕上,比较增强的效果。
四、实验步骤1、打开计算机,启动MATLAB程序。
2、图像读取与显示。
MATLAB中从图像文件中读取数据用函数imread(),这个函数的作用就是将图像文件的数据读入矩阵中,用imshow()函数显示出来。
imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg');imshow('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg');title('原图像')3、直方图的显示A=imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg'); figure;imhist(A),title('对应直方图')4、直方图均衡化MATLAB提供了histeq函数(自动直方图均衡化)I=imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg'); K=histeq(I);figure;imshow(K),title('经直方图均衡化后的图')figure;imhist(K),title('直方图均衡化后的直方图')5、图像的边缘检测用Sobel算子做边缘检测[A,map]=imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg'); image=double(A);u=zeros(1,9);k=zeros(1,9);for i=2:255,for j=2:255,u(1)=0*image(i,j);u(2)=2*image(i,j+1);u(3)=1*image(i-1,j+1);u(4)=0*image(i-1,j);u(5)=-1*image(i-1,j-1);u(6)=-2*image(i,j-1);u(7)=-1*image(i+1,j-1);u(8)=0*image(i+1,j);u(9)=1*image(i+1,j+1);rimage1(i,j)=abs(sum(u));k(1)=0*image(i,j);k(2)=0*image(i,j+1);k(3)=1*image(i-1,j+1);k(4)=2*image(i-1,j);k(5)=1*image(i-1,j-1);k(6)=0*image(i,j-1);k(7)=-1*image(i+1,j-1);k(8)=-2*image(i+1,j);k(9)=-1*image(i+1,j+1);rimage2(i,j)=abs(sum(k));xiaoqiu(i,j)=rimage1(i,j)+rimage2(i,j);end,end,figure,imshow(xiaoqiu,map),title('Sobel锐化');用prewitt算子做边缘检测[A,map]=imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg'); image=double(A);u=zeros(1,9);k=zeros(1,9);for i=2:255,for j=2:255,u(1)=0*image(i,j);u(2)=1*image(i,j+1);u(3)=1*image(i-1,j+1);u(4)=0*image(i-1,j);u(5)=-1*image(i-1,j-1);u(6)=-1*image(i,j-1);u(7)=-1*image(i+1,j-1);u(8)=0*image(i+1,j);u(9)=1*image(i+1,j+1);rimage1(i,j)=abs(sum(u));k(1)=0*image(i,j);k(2)=0*image(i,j+1);k(3)=-1*image(i-1,j+1);k(4)=1*image(i-1,j);k(5)=1*image(i-1,j-1);k(6)=0*image(i,j-1);k(7)=-1*image(i+1,j-1);k(8)=-1*image(i+1,j);k(9)=-1*image(i+1,j+1); rimage2(i,j)=abs(sum(k));xiaoqiu(i,j)=rimage1(i,j)+rimage2(i,j);end,end,figure,imshow(xiaoqiu,map),title('prewitt边缘检测');7、图像的处理均值滤波I=imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg');h=fspecial('average',3);I2=uint8(round(filter2(h,I)));imshow(I2),title('均值滤波')中值滤波I=imread('C:\Users\weixiaoxu\Desktop\图像处理\图像处理.jpg','jpg');I3=medfilt2(I,[3,3]);imshow(I3),title('中值滤波')五、实验总结通过本次试验基本掌握了应用MATLAB软件编程进行图像处理的方法,熟悉了位图文件的文件格式,掌握了位图数据读取显示,直方图均衡化以及线性增强的方法,并学会了运用分割算子对图像进行边缘检测和图像分割处理的方法。
图像处理报告
实验一 图像基本处理方法一、实验目的1. 直方图均衡化,图像滤波去噪,边缘检测算子,阈值分割等基本图像处理操作2.熟悉MATLAB 环境;3.学习用MATLAB 编程或直接调用函数对数字图像实现处理。
;4.分析比较运行结果,感性认识不同算法对图像处理的不同效果。
二、实验内容及要求利用Matlab 命令进行直方图均衡化,图像滤波去噪,边缘检测算子,阈值分割等基本图像处理操作。
三.实验原理图象去噪增强旨在改善图象质量。
并不一定以图象保真为准则,而是有选择地突出某些对人或机器分析有意义的信息,抑制无用信息,提高图象的使用价值。
时域处理:<1>线性灰度变换当图象成象时曝光不足或过度, 或由于成象设备的非线性和图象记录设备动态范围太窄等因素。
都会产生对比度不足的弊病,使图象中的细节分辨不清。
这时可将灰度范围线性扩展。
设f(x,y)灰度范围为[a,b],g(x,y)灰度范围为[c,d],⎪⎪⎩⎪⎪⎨⎧<≤≤+--->=ay x f cb y x f a ca y x f abcd b y x f d y x g ),(),(]),([),(),(还有分段线性灰度变换可以将感兴趣的灰度范围线性扩展,相对抑制不感兴趣的灰度区域。
此外非线性灰度变换如对数变换实现:低灰度区扩展,高灰度区压缩。
指数变换实现:高灰度区扩展,低灰度区压缩。
<2>直方图均衡化 Histogram Equalization直方图均衡化是将原图象的直方图通过变换函数修正为均匀的直方图,然后按均衡直方图修正原图象。
图象均衡化处理后,图象的直方图是平直的,即各灰度级具有相同的出现频数,那么由于灰度级具有均匀的概率分布,图象看起来就更清晰了。
直方图均衡化实质上是减少图象的灰度级以换取对比度的加大。
在均衡过程中,原来的直方图上频数较小的灰度级被归入很少几个或一个灰度级内,故得不到f(x,y)增强。
若这些灰度级所构成的图象细节比较重要,则需采用局部区域直方图均衡。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验
实验一 直方图处理
实验目的
● 理解图像直方图的概念,掌握图像直方图的绘制方法
● 掌握直方图均衡化的原理,并会用直方图均衡化对图像进行处理。
实验要求
1.读入图像,可使用imread 。
2.输出图像,可使用imshow 。
3.绘制图像pout.tif 的归一化的直方图,可使用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\lena.bmp');
%将读入的彩色图像转化为灰度图像
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\lena.bmp');
%将读入的彩色图像转化为灰度图像
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)均衡化后的图像及其归一化直方图
(注:可编辑下载,若有不当之处,请指正,谢谢!)。