直方图均衡化matlab程序

直方图均衡化matlab程序
直方图均衡化matlab程序

直方图和直方图均衡的Matlab完整程序(数字图像处理)

一、实验目的

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

二、实验内容

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

三、实验原理

灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。

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

四、实验程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%函数功能,画出图像的直方图,并对图像进行直方图均衡

%直接读图像abc.jpg,读到tuu中

%graydis是原始直方图各灰度级像素个数

%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro

%t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标

%new_graydis是统计新直方图各灰度级像素个数

%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro %计算直方图均衡后的新图new_tu

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all

close all

tuu=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);

%计算原始直方图各灰度级像素个数graydis

for x=1:h

for y=1:w

graydis(1,tu(x,y))=graydis(1,tu(x,y))+1;

end

end

%计算原始直方图graydispro

graydispro=graydis./sum(graydis);

subplot(1,2,1);

plot(graydispro);

title('灰度直方图');

xlabel('灰度值');ylabel('像素的概率密度');

%计算原始累计直方图

for i=2:256

graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);

end

%计算和原始灰度对应的新的灰度t[],建立映射关系

for i=1:256

t(1,i)=floor(254*graydispro(1,i)+0.5);

end

%统计新直方图各灰度级像素个数new_graydis

for i=1:256

new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i); end

%计算新的灰度直方图new_graydispro

new_graydispro=new_graydis./sum(new_graydis);

subplot(1,2,2);

plot(new_graydispro);

title('均衡化后的灰度直方图');

xlabel('灰度值');ylabel('像素的概率密度');

%计算直方图均衡后的新图new_tu

for x=1:h

for y=1:w

new_tu(x,y)=t(1,tu(x,y));

end

end

figure,imshow(tu,[]);

title('原图');

figure,imshow(new_tu,[]);

title('直方图均衡化后的图');

//////////////////////////////////////////////////////

另外两种代码:

代码

Matlab

下面的代码来自archiless,注释非常详细,适合初学。

%数字图像处理程序作业

%本程序能将JPG格式的彩色图像文件灰度化并进行直方图均衡

%

%输入文件:PicSample.jpg待处理图像

%输出文件:PicSampleGray.bmp灰度化后图像

%PicEqual.bmp均衡化后图像

%

%输出图形窗口说明

%figure NO1待处理彩色图像

%figure NO2灰度化后图像

%figure NO3直方图

%figure NO4均衡化后直方图

%figure NO5灰度变化曲线

%figure NO6均衡化后图像

%1,处理的图片名字要为PicSample.jpg

%2,程序每次运行时会先清空workspace

%作者;archiless lorder

clear all

%一,图像的预处理,读入彩色图像将其灰度化

PS=imread('PicSample.jpg');%读入JPG彩色图像文件imshow(PS)%显示出来figure NO1

title('输入的彩色JPG图像')

imwrite(rgb2gray(PS),'PicSampleGray.bmp');%将彩色图片灰度化并保存

PS=rgb2gray(PS);%灰度化后的数据存入数组

figure,imshow(PS)%显示灰度化后的图像,也是均衡化前的样品figure NO2

title('灰度化后的图像')

%二,绘制直方图

[m,n]=size(PS);%测量图像尺寸参数

GP=zeros(1,256);%预创建存放灰度出现概率的向量

for k=0:255GP(k+1)=length(find(PS==k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:255,GP,'g')%绘制直方图figure NO3

title('原图像直方图')

xlabel('灰度值')

ylabel('出现概率')

%三,直方图均衡化

S1=zeros(1,256);

for i=1:256for j=1:i S1(i)=GP(j)+S1(i);%计算Sk end end S2=round(S1*256);%将Sk归到相近级的灰度

for i=1:256GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率

end

figure,bar(0:255,GPeq,'b')%显示均衡化后的直方图figure NO4

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

figure,plot(0:255,S2,'r')%显示灰度变化曲线figure NO5

legend('灰度变化曲线')

xlabel('原图像灰度级')

ylabel('均衡化后灰度级')

%四,图像均衡化

PA=PS;

for i=0:255PA(find(PS==i))=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素

end

figure,imshow(PA)%显示均衡化后的图像figure NO6

title('均衡化后图像')

imwrite(PA,'PicEqual.bmp');

另一段Matlab的代码,来自直方图均衡化--图像增强

I=imread('LENA256.bmp');

imshow(I);

figure;

imhist(I);

[m,n]=size(I);

hf=zeros(1,256);

pa=zeros(1,256);

I=double(I);

for i=1:m for j=1:n hf(I(i,j)+1)=hf(I(i,j)+1)+1;%统计各灰度像素个数end end

bmap=zeros(1,256);

for i=1:256temp=0;for j=1:i temp=temp+hf(j);end

bmap(i)=floor(temp*255/(m*n));

end

y=zeros(m,n);

for i=1:m for j=1:n y(i,j)=bmap(I(i,j)+1);end end

y=uint8(y);

figure;

imshow(y);

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

matlab归一化处理数据

matlab 中归一化的几种方法及其各自的适用条件 关于神经网络(matlab)归一化的整理 关于神经网络归一化方法的整理 由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james) 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 2、对数函数转换,表达式如下: y=log10(x) 说明:以10为底的对数函数转换。 3、反余切函数转换,表达式如下: y=atan(x)*2/PI 归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布; 当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 关于用premnmx语句进行归一化: premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint 和maxt分别为T的最小值和最大值。 premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。 我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。 下面介绍tramnmx函数: [Pn]=tramnmx(P,minp,maxp) 其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。 (by terry2008) matlab中的归一化处理有三种方法 1. premnmx、postmnmx、tramnmx

基于Matlab编程仿真的直方图均衡化图像质量改善

基于直方图均衡的图像质量改善 班级:测控1004学号:2013270162姓名:杨明 摘要:为了解决灰度图像的灰度值分布集中在较窄的范围内,图像的细节不够清晰,对比度较低的问题。通过直方图均衡化使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像的细节清晰,以达到增强目的,直方图均衡化可得到任意的均匀直方图灰度图像。直方图均衡化是一种行之有效的图像增强方法,直方图均衡化是将原灰度图像的直方图通过变换函数变为均匀的直方图,然后按均匀直方图修改原图像,从而获得一幅灰度分布均匀的新图像。基于Matlab编程和工具箱的使用,实现图像直方图均衡化的图像仿真。 关键词:直方图均衡化;图像增强;Matlab Abstract: In order to solve the gray image gray value distribution concentrated in a narrow range of image detail is not clear enough, the problem of low contrast. Gray histogram equalization range so that the gradation image or pulled evenly distributed, thereby increasing the contrast, so that a clear image detail, in order to achieve the purpose of enhancing, histogram equalization histogram obtained arbitrary uniform gray image . Histogram equalization is an effective method for image enhancement, histogram equalization is the histogram of the original gray-scale image by histogram transformation function becomes uniform, a uniform histogram modification then the original image, thereby obtaining a a gray uniform distribution of the new image. Matlab toolbox based programming and the use of image histogram equalization image simulation. Keywords: histogram equalization; image enhancement; Matlab

数字图像处理实验报告--直方图均衡化

数字图像处理实验报告 实验名称:直方图均衡化 : 班级: 学号: 专业:电子信息工程(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,这个条件保证了变换前后灰度值动态围的一致性。 累积分布函数即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为: gk = EQ(fk) = (ni/n) = pf(fi) , (k=0,1,2,……,L-1) 上述求和区间为0到k,根据该方程可以由源图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk到gk的灰度映射关系。在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对

基于matlab的直方图均衡化

目录 1、引言 (2) 2、直方图基础 (3) 3、直方图均衡化 (3) 3.1 直方图均衡化的概念 (3) 3.2 直方图均衡化理论 (4) 3.3 Matlab 实现 (4) 4、结论 (7) 致谢 (7) 参考文献 (7)

图像增强处理 —直方图均衡化的Matlab 实现摘要:为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换,此文中探讨了直方图的理论基础,直方图均衡化的概念及理论,以Matlab为平台,对某地区遥感TM单波段遥感影像进行直方图均衡化,并给出了具体程序、仿真结果图像、直方图及变换函数。实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。 关键词:图像增强直方图均衡化 Matlab 1、引言 图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。 增强的首要目标是处理图像,使其比原始图像更适合于特定应用。图像增强的方法分为两大类:空间域方法和频域方法。“空间域”一词是指图像平面本身,这类方法是以对图像的像素直接处理为基础的。“频域”处理技术是以修改图像的傅氏变换为基础的。 一般说来,原始遥感数据的灰度值范围都比较窄,这个范围通常比显示器的显示范围小的多。增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。增强主要以图像的灰度直方图最为分析处理的基础。直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。本文主要讨论了空间域的直方图均衡化增强,并用Matlab 进行实验验证。 2、直方图基础 1、灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。确定图像像

直方图均衡化及直方图规定化

《数字图像处理》实验 报告(二) 学号:____________ 姓名:__________ 专业:____ 课序号:__________ 计算机科学与技术学院

实验2直方图均衡化 一、实验学时:4学时(本部分占实验成绩的40%) 二、实验目的: 1、理解直方图均衡化的原理及步骤; 2、编程实现图像(灰度或彩色)的直方图均衡化。 三、必须学习和掌握的知识点: 直方图均衡化是一种快速有效且简便的图像空域增强方法,在图像处理中有着非常重要的意义,因此要求掌握。 四、实验题目: 编程实现灰度图像的直方图均衡化处理。要求给出原始图像的直方图、均衡化图像及其直方图和直方图均衡化时所用的灰度级变换曲线图。 五、思考题:(选做,有加分) 实现对灰度图像的直方图规定化处理。 六、实验报告: 请按照要求完成下面报告内容并提交源程序、可执行程序文件和实验结果图像。

1、请详细描述本实验的原理: 1.直方图均衡化概述 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。 直方图均衡化的英文名称是Histogram Equalization. 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。 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,这个条件保证了变换前后灰度值动态范围的一致性。 累积分布函数(cumulative distribution function,CDF)即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为: gk = EQ(fk) = (ni/n) = pf(fi) , (k=0,1,2,……,L-1)

数据标准化.归一化处理

数据的标准化 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”

和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。 一、Min-max 标准化 min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为: 新数据=(原数据-极小值)/(极大值-极小值) 二、z-score 标准化 这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。 新数据=(原数据-均值)/标准差 spss默认的标准化方法就是z-score标准化。用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。步骤如下: 求出各变量(指标)的算术平均值(数学期望)xi和标准差si ; .进行标准化处理:zij=(xij-xi)/si,其中:zij为标准化后的变量值;xij为实际变量值。 将逆指标前的正负号对调。标准化后的变量值围绕0上下波动,

绘制数字图像灰度直方图实验报告MATLAB实现

数字图像处理 实验报告 实验一绘制直方图 学号 姓名 日期

实验一绘制直方图 一、实验内容 1、编程绘制数字图像的直方图。 2、直方图均衡处理。 二、实验步骤 1、设计思想或者流程图。 灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 2、源程序并附上注释。 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:255 GP(k+1)=length(find(PS==k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置 end figure,bar(0:255,GP,'g')%绘制直方图 title('原图像直方图') xlabel('灰度值') ylabel('出现概率') %三,直方图均衡化 S1=zeros(1,256); for i=1:256 for j=1:i S1(i)=GP(j)+S1(i);%计算Sk end end S2=round((S1*256)+0.5);%将Sk归到相近级的灰度for i=1:256 GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率

MATLAB统计分析与应用:40个案例分析

MATLAB统计分析与应用:40个案例分析 ISBN:9787512400849 分类号:C819 /115 出版社:北京航空航天大学出版社 【内容简介】 本书从实际应用的角度出发,以大量的案例详细介绍了MA TLAB环境下的统计分析与应用。 本书主要内容包括:利用MA TLAB制作统计报告或报表;从文件中读取数据到MA TLAB;从MA TLAB中导出数据到文件;数据的平滑处理、标准化变换和极差归一化变换;生成一元和多元分布随机数;蒙特卡洛方法;参数估计与假设检验;Copula理论及应用实例;方差分析;基于回归分析的数据拟合;聚类分析;判别分析;主成分分析;因子分析;图像处理中的统计应用等。 本书可以作为高等院校本科生、研究生的统计学相关课程的教材或教学参考书,也可作为从事数据分析与数据管理的研究人员的参考用书。 【目录】 第1章利用MA TLAB生成Word和Excel文档 1.1 组件对象模型(COM) 1.1.1 什么是CoM 1.1.2 CoM接口 1.2 MA TLAB中的ActiveX控件接口技术 1.2.1 actxcontrol函数 1.2.2 actxcontrollist函数 1.2.3 actxcontrolselect函数 1.2.4 actxserver函数 1.2.5 利用MA TLAB调用COM对象 1.2.6 调用actxserver函数创建组件服务器 1.3 案例1:利用MA TLAB生成Word文档 1.3.1 调用actxserver函数创建Microsoft Word服务器 1.3.2 建立Word文本文档 1.3.3 插入表格 1.3.4 插入图片 1.3.5 保存文档 1.3.6 完整代码 1.4 案例2:利用MA TLAB生成Excel文档 1.4.1 调用actxserver函数创建Microsoft Excel服务器 1.4.2 新建Excel工作簿 1.4.3 获取工作表对象句柄 1.4.4 插入、复制、删除、移动和重命名工作表 1.4.5 页面设置 1.4.6 选取工作表区域 1.4.7 设置行高和列宽 1.4.8 合并单元格 1.4.9 边框设置 1.4.10 设置单元格对齐方式

基于Matlab的归一化二阶系统课程设计

Matlab 实训设计(一) 二阶系统变阻尼比的动态仿真系统的设计 一.设计一个二阶系统的变阻尼比的动态仿真系统 二.步骤 (1)程序功能描述 1. 典型二阶系统的传递函数为 ω ωωξ22 2 2)(n n n S s ++= Φ 2. 归一化二阶系统的单位阶跃响应 1、ζ=0(无阻尼)时,系统处于等幅振荡,超调量最大,为100%,并且系统发生不衰减的振荡,永远达不到稳态。 2、0<ζ<1(欠阻尼)时,系统为衰减振荡。为了获得满意的二阶系统的瞬态响应特性,通常阻尼比在0.4~0.8的范围内选择。这时系统在响应的快速性、稳定性等方面都较好。 3、在ζ=1(临界阻尼)及ζ>1(过阻尼)时,二阶系统的瞬态过程具有单调上升的特性,以ζ=1时瞬态过程最短。 (2)程序界面设计 图形界面中的grid on 、grid off 分别是网格和绘图框的打开和关闭按钮

(3)程序测试运行 在编辑框中+还可以输入如0:0.1:0.8的阻尼系数数组,这表示把0到0.8之间的长度以0.1为跨距等份,再以每点的数据得到响应曲线,上式就包含了 ze-ta=0、0.1、0.2···、0.8总共8个阻尼比下的响应曲线

三.控件属性设置 (1)String %显示在控件上的字符串 (2)Callback 回调函数 (3)enable 表示控件是否有效 (4)Tag 控件标记,用于标识控件 四.设计:实现如下功能的系统界面 (1)在编辑框中,可以输入表示阻尼比的标量成行数组、数值,并在按了Enter 键后,在轴上画出图形,坐标范围x[1,15],y[0,2]。 (2)在点击grid on或者grid off键时,在轴上显示或删除“网格线”。(3)在菜单[options]下,有两个下拉菜单[Box on]和[Box off],缺省值为off。(4)所设计界面和其上图形,都按比例缩放。 五.各个控件属性设置 (1)在图形窗中设置 Name 我的设计 Rize on %图窗可以缩放 Tag figure1 %生成handles. figure1 (2)在轴框中 Units normalizen Box off坐标轴不封闭 Tag axes1 XLim[0,15]%x范围 YLim[1,2]%y范围 (3)静态文件框1 fontsize 0.696 fritunits normalizen String“归一化二阶阶跃响应” Tag text1 Horizontalignment Center

直方图均衡化处理

数字图像处理实验报告 姓名: 王程学号: 2012021199037 日期:2013.3.30 一、实验要求 (1)对一幅的对比度灰度图像进行直方图均衡化处理,画出处理前后的图像及直方图(2)用matlab读取和显示 二、实验代码 clc; clear; I=imread('E:\数字图像处理\exp2\伊伽贝拉.jpg'); %读入图像文件 if isrgb(I) I=rgb2gray(I); end subplot(221),imshow(I); title('原图像伊伽贝拉') [m,n]=size(I); %测量图像尺寸参数 B=zeros(1,256); %预创建存放灰度出现概率的向量for i=1:m for j=1:n %k=I(i,j); %k=k+1; %B(k)=B(k)+1; B(I(i,j)+1)=B(I(i,j)+1)+1; %计算每级灰度出现的概率end end subplot(222), stem(0:255,B,'Marker','none'); %绘制直方图 title('未均衡化的直方图'); S=I; [m,n]=size(S); %读出图像的大小 BP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255 BP(k+1)=length(find(S==k))/(m*n); %计算每级灰度出现的概率 end B1=zeros(1,256) for i=1:256 for j=1:i B1(i)=BP(j)+B1(i); end

end B2=round((B1*256)+0.5); for i=1:256 BPeq(i)=sum(BP(find(B2==i))); end I=S; for i=0:255; I(find(S==i))=B2(i+1); %将各个像素归一化后的灰度值赋 给这个像素 end subplot(223), imshow(I); %显示均衡化后的图像 title('均衡化后的图像'); subplot(224), imhist(I); %利用系统函数进行直方图计算 title('均衡化后的直方图'); 三、 实验结果截图并做分析 原图像伊伽贝拉 0100200 300 1234x 104 未均衡化的直方图 均衡化后的图像 02000 4000 均衡化后的直方图 100 200 分析: 从上面各个图中可以看出在原图像中的一些看不到或看不清楚的细节在均衡化后可以

直方图均衡化图像增强与彩色图像处理算法分析

直方图均衡化图像增强与彩色图像处理算法分析 2012.05.29

目录 1. 前言 (1) 2. 理论分析 (2) 2.1 直方图修正技术的基础 (2) 2.2 直方图的均衡化 (3) 2.3 直方图均衡化的算法步骤 (4) 3. 仿真实验与结果 (6) 3.1直方图均衡化Matlab程序 (6) 3.2 彩色图形处理Matlab程序 (8) 3.3 直方图均衡化仿真结果: (10) 3.4 彩色图像处理仿真结果: (13) 4. 结论 (14) 参考文献 (15)

1. 前言 在实际应用中,无论采用何种输入装置采集的图像,由于光照、噪声等原因,图像的质量往往不能令人满意。例如,检测对象物的边缘过于模糊;在比较满意的一幅图像上发现多了一些不知来源的黑点或白点;图像的失真、变形等等。所以图像往往需要采取一些手段进行改善以求达到较好的效果。图像增强技术正是在此基础上提出的。图像增强是图像分析与处理的一个重要的预处理过程,其主要有两个目的:一是运用一系列技术手段改善图像的视觉效果,提高图像的清晰度;二是将图像转化成一种更适合于人或计算机进行分析处理的形式。即改善图像质量是图像增强的根本目的。图像增强的意义一般可以理解为:按需要进行适当的变换,对图像的某些特征,如边缘、轮廓、对比度进行强调或锐化,突出某些有用的信息,去除或削弱无用的信息以便于显示、观察或进一步分析和处理。 图像增强技术是一类基本的图像处理技术,是指有选择地突出图像中感兴趣的特征或者抑制图像中某些不需要的特征,其目的是使处理后的图像更适合于人的视觉特性或机器的识别系统,包括图像的轮廓线或者纹理加强、图像去噪、对比度增强等。因此图像增强处理是图像分析和图像理解的前提和基础。在图像的获取过程中,特别是对于多媒体监控系统采集的图像,由于监控场景光线照射复杂、拍摄背景也比较复杂等环境因素的影响。加之摄像设备、传感器等因素引入的噪声,使监控图像在一定程度上存在对比度差、灰度分布范围窄、图像分辨率下降。因此,为得到一幅清晰的图像必须进行增强处理。传统的图像增强算法通常是基于整幅图像的统计量,这样在计算整幅图像的变换时,图像中的低频信息、高频信息以及含有的噪声,同时进行了变换,因而在增强图像的同时增强了噪声,导致信息熵下降,给监控图像的分析和后期处理带来了困难。针对此问题,提出一种新算法。 图像增强处理方法根据图像增强处理所在的空间不同,可分为基于空间域的增强方法和基于频率域的增强方法两类。空间域处理方法是在图像像素组成的二维空间里直接对每一个像素的灰度值进行处理,它可以是一幅图像内像素点之间的运算处理,也可以是数幅图像间的相应像素点之间的运算处理。频率域处理方法是在图形的变换域对图像进行间接处理。其特点是先将图像进行变换,在空间域对图像作傅里叶变换得到它的频谱按照某种变化模型(如傅里叶变换)变换到频率域,完成图像由空间域变换到频率域,然后在频率域内对图像进行低通或高通频率域滤波处理。处理完之后,再将其反变换到空间域。 直方图均衡化算法是图像增强空域法中的最常用、最重要的算法之一。它以概率理论作基础,运用灰度点运算来实现直方图的变换,从而达到图像增强的目的。本文介绍一种基于累积分布函数变换法为基础的直方图修正法。它可以通过对直方图进行均匀化修正,可使图像的灰度间距增大或灰度均匀分布、增大反差,是图像的细节变得清晰。

matlab图像处理归一化

matlab图像处理为什么要归一化和如何归一化 一、为什么归一化 1. 基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响。也就是转换成唯一的标准形式以抵抗仿射变换 图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。 因为我们这次的图片有好多都是一个系列的,所以老师把这个也作为我研究的一个方向。 我们主要要通过归一化减小医学图片由于光线不均匀造成的干扰。 2.matlab里图像数据有时候必须是浮点型才能处理,而图像数据本身是0-255的UNIT型数据所以需要归一化,转换到0-1之间。 3.归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。目的是为了: (1).避免具有不同物理意义和量纲的输入变量不能平等使用 (2).bp中常采用sigmoid函数作为转移函数,归一化能够防止净输入绝对值过大引起的神经元输出饱和现象 (3).保证输出数据中数值小的不被吞食 3.神经网络中归一化的原因 归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 二、如何归一化 matlab中的归一化处理有三种方法 1. premnmx、postmnmx、tramnmx 2. restd、poststd、trastd 3. 自己编程 (1)线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 (2)对数函数转换,表达式如下: y=log10(x)

基于matlab的直方图均衡化

课程设计报告 题目基于matlab的直方图均衡化程序设计 学生姓名: 学生学号: 系别: 专业: 届别: 指导教师: 电气信息工程学院制

目录 1、引言·······················································································- 2 - 2、直方图基础 ···············································································- 2 - 3、直方图均衡化············································································- 3 -3.1 直方图均衡化的概念·····················································································- 3 -3.2 直方图均衡化理论························································································- 4 - 3.3 Matlab 实现······························································································- 4 - 4、结论 ······················································································- 10 - 5、心得体会················································································- 10 -参考文献·····················································································- 10 - 基于matlab的直方图均衡化程序设计

课设报告正文(MATLAB的图像直方图的计算与显示)

目录 摘要........................................................................ I 1 基础介绍 (1) 1.1MATLAB简介 (1) 1.2数字图像处理简介 (1) 2 设计原理分析 (3) 2.1灰度直方图的定义 (3) 2.2设计原理 (3) 2.3常用函数介绍 (3) 3 程序及运行结果 (4) 3.1流程图 (4) 3.2源程序 (4) 3.3运行结果 (5) 3.4库函数运行结果 (7) 4设计总结 (8) 5心得体会 (9) 参考文献 (10)

1 基础介绍 1.1MATLAB简介 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 1.2数字图像处理简介 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。

关于神经网络(matlab)归一化的整理

关于神经网络(matlab)归一化的整理 关于神经网络归一化方法的整理 由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james) 1、线性函数转换,表达式如下: y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 2、对数函数转换,表达式如下: y=log10(x) 说明:以10为底的对数函数转换。 3、反余切函数转换,表达式如下: y=atan(x)*2/PI 归一化是为了加快训练网络的收敛性,可以不进行归一化处理 归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布; 当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。 归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。 但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。 关于用premnmx语句进行归一化: premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint 和maxt分别为T的最小值和最大值。 premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。 我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。 下面介绍tramnmx函数: [Pn]=tramnmx(P,minp,maxp) 其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。 (by terry2008) matlab中的归一化处理有三种方法 1. premnmx、postmnmx、tramnmx 2. restd、poststd、trastd 3. 自己编程 具体用那种方法就和你的具体问题有关了

基于Matlab基本图像处理程序

基于Matlab基本图像处理程序

————————————————————————————————作者:————————————————————————————————日期: ?

图像读入 ●从图形文件中读入图像imread Syntax:A = imread(, fmt) :指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到所制定的文件,会尝试查找一个名为的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含RGB 真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map]=imread(, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1,val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow() himage=imshow(...)

●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像素在图像中出现的概率。 图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。 图像的灰度直方图运算: imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。 ●Imhist函数=Display histogramof image data显示灰度直方图的函数 ●Syntax: ①imhist(I) % I为要计算的灰度直方图图像 ②imhist(I, n) %n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。 ③imhist(X, map) ④[counts,x] =imhist(...)%counts直方图数据向量。counts(i)第i个灰度区间中的像素数目。x是保存了对应的灰度小区间的向量。 注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可

相关文档
最新文档