亮图像和暗图像的直方图均衡化

亮图像和暗图像的直方图均衡化
亮图像和暗图像的直方图均衡化

一、亮图像和暗图像的直方图均衡化

原理及应用

由于许多原始图像的灰度经常分布在一个小范围内,不易观察分辨,通过直方图均衡化使图像灰度均匀分布,使一定范围内象元值的数量大致相等,以此加强细节,提高图像的清晰度,便于观察以及计算机进行分析处理

代码

clear;

I=imread('F:\matlab\p1.jpg'); %读入图像

I=rgb2gray(I); %转换为灰度图像

high=histeq(I); %直方图均衡化,指定灰度级数n,缺省为64

subplot(2,2,1),imshow(I); %显示图像

subplot(2,2,2),imshow(high);

subplot(2,2,3),imhist(I);

subplot(2,2,4),imhist(high);

代码结果

图1 亮图像均衡化前后对比

图2 暗图像直方图均衡化前后对比

二、用频域高斯低通、高斯高通滤波器分别对图像进行平滑和锐化。 原理:

高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器,它用像素邻域的加权均值来代替该点的像素值,通过一系列傅里叶变换达到平滑或者锐化的效果。

代码:

clear;

clc

I=imread('p3.jpg'); %读取图像

J=rgb2gray(I); %将图像变为二维灰度图象

f=double(J); %MATLAB的矩阵运算中要求所有的运算变量为double型

f=fft2(f);%二维的傅里叶变换

f=fftshift(f);%将中心从矩阵的原点移到矩阵的中心

[row,col]=size(f);

d0=60; %截止频率为60,数值越小越平滑

row1=fix(row/2);

col1=fix(col/2);

for i=1:row %d0为60的高斯低通滤波器

for j=1:col

d=sqrt((i-row1)^2+(j-col1)^2);

h(i,j)=exp(-d^2/(2*d0^2));

% 若为高斯高通滤波器,达到锐化效果则h(i,j)=1-exp(-d^2/(2*d0^2));

g(i,j)=h(i,j)*f(i,j);

end

end

g=ifftshift(g); %对图像进行反FFT移动

g=ifft2(g);%进行二维傅立叶反变换

K=uint8(real(g));

subplot(1,2,1),imshow(J);

subplot(1,2,2),imshow(K);

代码结果

图3 高斯低通滤波器(平滑)前后对比

图4 高斯高通滤波器(锐化)前后对比

3. 对该图RGB三个通道进行gama 变换增强,写上变换公式,代码和效果图。 原理:

gama 变换增强是对图像进行亮度变换的方法,可以用imadjust 函数实现,使对比度增强,更加便于人眼的观察

格式:J=imadjust(I,[lowin highin],[lowout highout],gamma)

说明:其中gamma 为校正量r,它指定了映射曲线的形状,[lowin highout] 为原图像中要变换的灰度范围,[lowout highout]指定了变换后的灰度范围,即将lowin至highin之间的值映射到lowout至highout,lowin以下与highout以上的值被“剪切”掉。

代码

clear;

clc

gamma=0.2

I=imread('p4.bmp');

I(:,:,2)=0; %得到RGB中R图像

I(:,:,3)=0;

R=I;

R1=imadjust(R,[0.5 0.8],[0 1],gamma);%用imadjust函数进行gama变换增强subplot(3,2,1);imshow(R);

subplot(3,2,2);imshow(R1);

I=imread('p4.bmp');

I(:,:,1)=0; %得到RGB中G图像

I(:,:,3)=0;

G=I;

G1=imadjust(G,[0.2 0.5],[0 1],gamma);%用imadjust函数进行gama变换增强subplot(3,2,3);imshow(G);

subplot(3,2,4);imshow(G1);

I=imread('p4.bmp');

I(:,:,1)=0; %得到RGB中B图像

I(:,:,2)=0;

B=I;

B1=imadjust(B,[0 1],[0 1],gamma);%用imadjust函数进行gama变换增强subplot(3,2,5);imshow(B);

subplot(3,2,6);imshow(B1);

代码结果

图5 使用三组不同的域值,在RGB三个通道变化前后对比

4.对LENA图像进行基于DCT压缩,

(a)在YUV模型空间做,Y通道DCT系数小于10的为0,UV通道DCT 系数小于20的为0。

(b)进行反DCT变换。

(c)转换成RGB空间,保存成bmp格式。

(d)比较压缩前后的质量变换,计算PSNR的值。

原理:

DCT即离散余弦变换,其编码原理为:首先子块划分f(x,y),再正变换到F(x,y),样本选择,量化编码,经过信道传输,要解压时通过译码器,反变化后重建图像。

DCT变换的实现方法有两种:一种基于FFT的快速算法,由dct2实现;另一种是DCT变换

矩阵的方法,由函数dctmtr实现。本实验采用基于FFT的快速算法,通过dct2函数实现.。

由于压缩引起的失真,有必要对测量原始信号与处理信号的差别制定客观评价标准。这非常重要,采用峰值信噪比(peak signal-to-noise ratio,PSNR,单位dB)作为视频处理后质量测量标准。

代码

clear;

clc

RGB=imread('lena.bmp');

YUV=rgb2ycbcr(RGB); %转换到YUV通道

Y=YUV(:,:,1); %Y的分量矩阵

Y=dct2(Y); %进行二维DCT变换

Y(abs(Y)<10)=0; %DCT系数小于10, 除掉值小于10的数据(压缩)Y2=idct2(Y)/255; %dct反变换

U=YUV(:,:,2); %U的分量矩阵

U=dct2(U);

U(abs(U)<20)=0; %DCT系数小于20, 除掉值小于20的数据(压缩)U2=idct2(U)/255; %dct反变换

V=YUV(:,:,3); %V的分量矩阵

V=dct2(V);

V(abs(V)<20)=0; %DCT系数小于20, 除掉值小于20的数据(压缩)

V2=idct2(V)/255; %dct反变换

figure;

subplot(1,3,1),imshow(log(abs(Y)),[]); %显示图像处理结果

subplot(1,3,2),imshow(log(abs(U)),[]);

subplot(1,3,3),imshow(log(abs(V)),[]);

figure;

subplot(1,3,1),imshow(Y2);

subplot(1,3,2),imshow(U2);

subplot(1,3,3),imshow(V2);

YUV1= cat(3, Y2, U2, V2);

RGB1=ycbcr2rgb(YUV1); %转化为RGB图像

figure;

subplot(2,1,1),imshow(RGB);

subplot(2,1,2),imshow(RGB1);

imwrite(RGB1, 'lenacompress.bmp');

%比较压缩前后的质量变换,计算PSNR的值

Lena=double(RGB); %读取原图像

[x,y,z] = size(Lena); %原图像行数

LenaCompress=double(RGB1); %压缩后图像

%计算信噪比

sum = 0;

for k = 1:z

for i = 1:x

for j = 1:y

sum = sum + (Lena(i ,j, k) - LenaCompress(i, j ,k)) ^ 2; end

end

end

MSE = sum /(x * y * 3);

psnr = 10 * log10(1 / MSE);

sprintf('PSNR = %5.2f dB',psnr)

程序结果

图6 三个通道Y、U、V的DCT变换

左上角图像较亮,能量密度大.

图7 三个通道Y、U、V的DCT反变换

图8 原始图像与压缩还原后的图像

图9 PSNR值

PSNR高于40dB说明图像质量极好(即非常接近原始图像),

在30—40dB通常表示图像质量是好的(即失真可以察觉但可以接受),在20—30dB说明图像质量差;

PSNR低于20dB图像不可接受。

实验结果表明,经DCT变换后图像质量较好。

基于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的灰度映射关系。在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对

数字图像处理实验四

数字图像处理 实验 实验四:图像增强—直方图变换学院:信息工程学院 姓名: 学号: 专业及班级: 指导教师:

一、实验目的 1.掌握灰度直方图的概念及其计算方法; 2.熟练掌握直力图均衡化和直方图规定化的计算过程; 3.熟练掌握空域滤波中常用的平滑和锐化滤波器; 4.掌握色彩直方图的概念和计算方法; 5.利用MATLAB程序进行图像增强。 二、实验内容 图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。 直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。 直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。 图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。 直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。 三、实验具体实现 显示原图像的直方图和经过均衡化处理过的图像直方图: I=imread('1.jpg'); % 读入原图像 J=histeq(I); %对原图像进行直方图均衡化处理 subplot(2,2,1) ;imshow(I); %显示原图像 title('原图像'); %给原图像加标题名 %对原图像进行屏幕控制;显示直方图均衡化后的图像 subplot(2,2,2) ;imshow(J); %给直方图均衡化后的图像加标题名 title('直方图均衡化后的图像') ; %对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅 subplot(2,2,3) ; imhist(I,64); %将原图像直方图显示为64级灰度 title('原图像直方图') ; %给原图像直方图加标题名

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

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

实验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)

灰度图像直方图统计

1.灰度图像直方图统计实习报告 一、实习目的 在学习灰度图像直方图的概念、计算方法、性质和相关应用的基础上,应用Photoshop软件和编写灰度直方图统计程序,能初步掌握图像文件格式读写与图像数据处理,提高学生兴趣和编程能力,巩固所学知识。 二、实习内容 1.实习数据 E:\ 数字图像处理\实习一\Lena.raw 2.利用Photoshop显示图像的灰度直方图,从直方图上了解图像平均明暗度和对比度等信息。 3.要求利用C或C++语言编写灰度图像直方图统计的程序。 三、实习步骤 1.使用Photoshop显示直方图。 (1)点击“文件”-->“打开”,打开一幅图像,此处选取“lena.raw”; (2)点击“图像”-->“直方图”,显示图像的直方图;

(3)对图像做增强处理,例如选择“图像”-->“调整”-->“自动对比度”对图像进行灰度拉伸,然后再显示直方图,观察它的变化。 2.用C或C++编写显示直方图的程序。 具体代码如下: #include "stdio.h" #include "windows.h" void main() { FILE *fp; //文件类指针

fp=fopen("lena.raw","rb"); //打开二进制文件 if (fp==NULL) { printf("文件已损坏,请重新打开。 \n"); } else printf("文件已打开,已经生成.txt文档,请查看。\n"); BYTE PIXEL[512*512]; fread(PIXEL,1,512*512,fp);//二进制文件读取 fclose(fp);//关闭文件 int HistogramStat[256]; for(int i=0;i<256;i++) HistogramStat[i]=0;//赋初值 for (i=0;i<512*512;i++) { int a=PIXEL[i]; HistogramStat[a]++; } //统计像素个数 fp=fopen("灰度直方图.txt","rb"); fprintf(fp,"图像灰度,像素个数\n"); for (i=0;i<256;i++) { if (HistogramStat[i]!=0) fprintf(fp,"%5d,%5d\n",i,HistogramStat[i]); } fprintf(fp,"像素个数为0的已被省略。");//输出内容 } 四、思考题 1灰度直方图可以反映出一幅图像的哪些特性? 答:(1)表征了图像的一维信息。只反映图像中像素不同灰度出现的次数,而未反映像素所在的位置。即丢失了像素的位置信息。 (2)与图像之间的关系式多对一的映射关系。一幅图像唯一确定出与之对应的直方图,但不同的图像可能有相同的直方图。 (3)一幅图像可分为多个子区域,子图直方图之和为整图的直方图。 2灰度直方图有何用途?编程实现一种灰度直方图应用的程序。 答:(1)用于判断图像量化是否恰当。 (2)用于确定图像的二值化阈值。 (3)计算图像中物体的面积。 (4)计算图像信息量H(熵)。 3在本次实习的基础上,试编写直方图均衡的程序。 五、实习心得体会

直方图均衡化

图像增强是数字图像处理的基本内容。遥感图像增强是为特定目的,突出遥感图像中的某些信息,削弱或除去某些不需要的信息,使图像更易判读。图像增强的实质是增强感兴趣目标和周围背景图像间的反差。它不能增加原始图像的信息,有时反而会损失一些信息。它也是计算机自动分类一种预处理方法。 目前常用的图像增强处理技术可以分为两 大类:空间域和频率域的处理。主要内容包括基于直方图的处理、图像平滑以及图像锐化等。空间域处理是指直接对图像进行各种运算以得到需要的增强结果。频率域处理是指先将空间域图像变换成频率域图像,然后在频率域中对图像的频谱进行处理,以达到增强图像的目的。 6.2.1 图像灰度的直方图 图像灰度直方图反映了一幅图像中灰度级 与其出现概率之间的关系。对于数字图像,由于图像空间坐标和灰度值都已离散化,可以统计出灰度等级的分布状况。数字图像的

灰度编码从0,1,2,…,2n-1(n为图像量化时的比特数),每一个灰度级的像元个数mi可以从图像中统计出来,整幅图像的像元数为M,则任意灰度级出现的频率为: (6-20) (6-21) 由2n个P值即可绘制出数字图像的灰度直方图,如图6-5。图像直方图随图像不同而不同,不同图像有不同的直方图。 图6-5数字图像直方图 灰度直方图可以看成是一个随机分布密度函数,其分布状态用灰度均值和标准差两个参数来衡量。灰度均值为: (6-22)

式中:为整幅图像灰度平均值; X ij为(i,j)处像元的灰度值; R为图像行数; L为图像列数; M=R*L为图像像元总数; 标准差: Xi:i处像元的灰度值 直方图分布状态不同,图像特征不同,如图6-6所示。

基于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、灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。确定图像像

直方图均衡化处理教学内容

实验 1.直方图均衡化程序的原理及步骤 直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某灰度区间变成在全部灰度范围内的均匀分布。 直方图均衡化的原理: 直方图均衡化是把原图像的直方图通过灰度变换函数修正为灰度均匀分布的直方图,然后按均衡直方图修正原图像,其变换函数取决于图像灰度直方图的累积分布函数。概括地说,就是把一已知灰度概率分布的图像,经过一种变换,使之演变成一幅具有均匀概率分布的新图像。当图像的直方图为一均匀分布时,图像的信息熵最大,此时图像包含的信息量最大,图像看起来更清晰。灰度直方图用各灰度值出现的相对频数(该灰度级的像素数与图像总像素数之比)表示。 直方图表示数字图像中每一灰度级与其出现频数的的统计关系,用横坐标表示灰度级,纵坐标表示频数。直方图就能给出该图像的概貌性描述,例如图像的灰度范围、每个灰度级的频数和灰度的分布、整幅图像的亮度和平均明暗对比度等,由此可得出进一步处理的重要依据。计算每个灰度级出现的概率为: P r (r k )=N k /N k=0,1,2,…,L-1 上式中, P r (r k )表示第k 个灰度级出现的概率,N k 为第 k 个灰度级出现的频数,N 为图像像素总数,L 为图像中可能的灰度级总数。由此可得直方图均衡化变换函数,即图像的灰度累积分布函数Sk 为: 1,...,2,1,0)()(00-====∑∑==L k r P r T s k j N N k j j r k k j 上式中, S k 为归一化灰度级。 这个变换映射称做直方图均衡化或直方图线性化。 直方图均衡化过程如下: (1) 输出原图像; (2) 根据公式P r (r k )=n k /m*n ( k=0,1,2,…,L-1)计算对应灰度级出现的概率, 绘制原图像的直方图。 (3) 计算原图象的灰度级累积分布函数:sk=Σp r (r k ); (4) 取整Sk=round((S1*256)+0.5);将Sk 归一到相近的灰度级,绘制均衡化后的 直方图。 (5) 将每个像素归一化后的灰度值赋给这个像素,画出均衡化后的图像。 2.根据直方图均衡化步骤对输入的原图象进行处理,输出的图像如下图所示。

基于直方图均衡化的彩色图像增强

基于直方图均衡化的彩色图像增强 摘要:现实生活中经常遇到所照图片清晰度不好,亮度不够,能辨率低,这样就需要将图像进行处理以得到清晰度和亮度更好的图像。文章首先介绍彩色图像和图像增强的定义与方法,以及彩色图像转换为灰度图像的方法,然后对直方图均衡化作出解释,最后通过实验先将彩色图像转换为hsi 图像,并对hsi 图像中的i分量的灰度图像进行直方图均衡化的处理,再将经过处理后的hsi 图像还原成彩色图像,即可得到增强的彩色图像效果图。实现了通过直方图均衡化的处理得到彩色图像的增强。 关键词:彩色图像;灰度图像;图像增强;直方图均衡化;hsi 图像 中图分类号:tp751 文献标识码:a 文章编号:1009-3044(2013)04-0833-03 color image enhancement based on histogram equalization jiang dong-qin,li ming-dong (computer department, china west normal university,nanchong 637009,china) abstract: in the real world, the photographs that were took, which are lack of clarity and brightness, and visibilities are low. so there is need to deal with these photographs to get better clarity and brightness of pictures. in the article, at first, recommending the definitions and

数字图像处理点运算和直方图处理

实验1 点运算和直方图处理 一、实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理。 3. 进一步理解利用点操作这一方法进行图像处理的特点。 4. 掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。 二、实验的硬件、软件平台 硬件:计算机 软件:操作系统:WINDOWS 7 应用软件:MATLAB 三、实验内容及步骤 1. 了解Matlab图像工具箱的使用。 2. 利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中 的至少2个。 ⑴图1灰度范围偏小,且灰度偏低,改正之。 ⑵图2暗处细节分辨不清,使其能看清楚。 ⑶图3亮处细节分辨不清,使其能看清楚。 图1 图2 图3 3. 给出处理前后图像的直方图。 4. 利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操 作,观察结果。 四、思考题 1. 点操作能完成哪些图像增强功能? 2. 直方图均衡化后直方图为何并不平坦?为何灰度级会减少? 五、实验报告要求

1.对点操作的原理进行说明。 2.给出程序清单和注释。 3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。 实验代码以及解读 点操作: I = imread('POINT1.BMP')。 %读入图像 j=rgb2gray(I)。%将图像转为灰度图像 INFO=IMFINFO('POINT1.BMP') %获取图片的格式、尺寸、颜色数量、修改时间等信息[l,r]=size(j)。%图片大小 figure。%建立一个图形框 subplot(221) imshow(j) %在两行两列的第一个位置放置图片j title('POINT1.BMP') %给该图片加上标题POINT1.BMP for m=1:l for n=1:r %从第一个像素循环到最后一个像素p1(m,n)=j(m,n)*1.2。%把各点乘上1.2得到p1图 end end for m=1:l for n=1:r p2(m,n)=j(m,n)*2。%%把各点乘上2得到p2图 end end for m=1:l for n=1:r p3(m,n)=j(m,n)*2+50。%把各点乘上2再加50得到p2图 end end subplot(222) imshow(p1) title('j(m,n)*1.2') %p1图放在第二个位置且冠名j(m,n)*1.2 subplot(223) imshow(p2) title('j(m,n)*2') %p1图放在第三个位置且冠名j(m,n)* 2 subplot(224) imshow(p3) title('j(m,n)*2+50') %p1图放在第四个位置且冠名j(m,n)*2+50 figure。%建立一个新的窗口并且依次显示以上四个图的直方图

灰度直方图

1.灰度直方图 灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。如下图所示,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。 从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分,如下图所示:

若直接从代表每种灰度的象素数目的直方图来观察,常用如下的表示: dr r dP r p dr r p r P r )()(, )()(0 = =?∑???===≈ ===== =k i i k k k k k r r n n r P n n r p n r n A dA r p dr dr r H A r P A dr r dA A r H r p dr r H A dr r H r A 00 0000255 00 )()()(1)(1 )(,/)()()() ()(, )()(,而概率分布函数,则概率密度的象素数为,灰度为若记象素总数为,时,在离散情况下,取概率密度象素总数一幅图象的总面积,或

灰度直方图的计算是很简单的,依据定义,若图象具有L(通常L=256, 即8位灰度级)级灰度,则大小为MxN的灰度图象f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得: 1. 1.初始化 hist[k]=0 ; k=0,…,L-1 2. 2.统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1 3. 3.标准化 hist[f(x,y)]/=M*N 2.直方图均衡化 直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。 设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象A(x,y) 转换为输出图象B(x,y),输入图象的直方图为H A (r),输出图象的直方图为H B (s), 则它们的关系可由如下过程导出:

均值滤波 中值滤波 直方图均衡

实验报告 一.实验目的 对图像进行空域增强,实现均值滤波、中值滤波、直方图均衡。 二.实验内容 对加入椒盐噪声的图像进行均值滤波、中值滤波,对图像实现直方图均衡,通过改变图像的直方图来改变图像中像素的灰度,以达到图像增强的目标。 三.实验原理 均值滤波的原理 均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(,) x y,选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(,) u x y,即 x y,作为处理后图像在该点上的灰度值(,)

1 (,)(,)u x y f x y m = ∑,m 为该模板中包含当前像素在内的像素总个数。 中值滤波的原理 中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。中值滤波的目的是保护图像边缘的同时去除噪声。 在一维的情况下,中值滤波器是一个含有奇数个像素的窗口,在处理之后,将窗口正中的像素灰度值用窗口内各像素灰度值的中值来代替。设有一个维序列 12,,...n f f f ,取窗口长度为奇数m ,对此序列进行中值滤波,就是从输入序列中 相续抽出m 个数,,,,,i v i i v f f f -+,其中为窗口的中心值(1)/2v m =-,再将这 m 个点的数值按其数值大小排列,取其序号为正中间的那个数作为滤波输出。中 值滤波表达式为: {}v i i v i i f f f Med F +-=,,,, 对二维序列{X i,j }的中值滤波,滤波窗口也是二维的,但这种二维窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维中值滤波可表示为: {}为滤波窗口,A x Med F j i A j i ,,= 在实际使用窗口时,窗口的尺寸一般先用33?再取55?逐渐增大,直到其滤波效果满意为止。 由于中值滤波是非线性运算,在输入和输出之间的频率上不存在一一对应关系,故不能用一般线性滤波器频率特性的研究方法。设G 为输入信号频谱,F 为输出信号频谱,定义F G H /=为中值滤波器的频率响应特性,实现表明H 是与G 有关,呈不规则波动不大的曲线,其均值比较平坦,可以认为信号经中值滤波后,传输函数近似为1,即中值滤波对信号的频域影响不大,频谱基本不变。

亮图像和暗图像的直方图均衡化

一、亮图像和暗图像的直方图均衡化 原理及应用 由于许多原始图像的灰度经常分布在一个小范围内,不易观察分辨,通过直方图均衡化使图像灰度均匀分布,使一定范围内象元值的数量大致相等,以此加强细节,提高图像的清晰度,便于观察以及计算机进行分析处理 代码 clear; I=imread('F:\matlab\p1.jpg'); %读入图像 I=rgb2gray(I); %转换为灰度图像 high=histeq(I); %直方图均衡化,指定灰度级数n,缺省为64 subplot(2,2,1),imshow(I); %显示图像 subplot(2,2,2),imshow(high); subplot(2,2,3),imhist(I); subplot(2,2,4),imhist(high); 代码结果 图1 亮图像均衡化前后对比

图2 暗图像直方图均衡化前后对比 二、用频域高斯低通、高斯高通滤波器分别对图像进行平滑和锐化。 原理: 高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器,它用像素邻域的加权均值来代替该点的像素值,通过一系列傅里叶变换达到平滑或者锐化的效果。 代码: clear; clc I=imread('p3.jpg'); %读取图像 J=rgb2gray(I); %将图像变为二维灰度图象 f=double(J); %MATLAB的矩阵运算中要求所有的运算变量为double型 f=fft2(f);%二维的傅里叶变换 f=fftshift(f);%将中心从矩阵的原点移到矩阵的中心 [row,col]=size(f); d0=60; %截止频率为60,数值越小越平滑 row1=fix(row/2); col1=fix(col/2); for i=1:row %d0为60的高斯低通滤波器 for j=1:col d=sqrt((i-row1)^2+(j-col1)^2); h(i,j)=exp(-d^2/(2*d0^2)); % 若为高斯高通滤波器,达到锐化效果则h(i,j)=1-exp(-d^2/(2*d0^2)); g(i,j)=h(i,j)*f(i,j); end end

直方图均衡化处理

实验1.直方图均衡化程序的原理及步骤 直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某灰度区间变成在全部灰度范围内的均匀分布。 直方图均衡化的原理: 直方图均衡化是把原图像的直方图通过灰度变换函数修正为灰度均匀分布的直方图,然后按均衡直方图修正原图像,其变换函数取决于图像灰度直方图的累积分布函数。概括地说,就是把一已知灰度概率分布的图像,经过一种变换,使之演变成一幅具有均匀概率分布的新图像。当图像的直方图为一均匀分布时,图像的信息熵最大,此时图像包含的信息量最大,图像看起来更清晰。灰度直方图用各灰度值出现的相对频数(该灰度级的像素数与图像总像素数之比)表示。 直方图表示数字图像中每一灰度级与其出现频数的的统计关系,用横坐标表示灰度级,纵坐标表示频数。直方图就能给出该图像的概貌性描述,例如图像的灰度范围、每个灰度级的频数和灰度的分布、整幅图像的亮度和平均明暗对比度等,由此可得出进一步处理的重要依据。计算每个灰度级出现的概率为: P r(r k)=N k/N k=0,1,2,…,L-1 上式中,P r(r k)表示第k个灰度级出现的概率,N k为第k个灰度级出现的频数,N为图像像素总数,L 为图像中可能的灰度级总数。由此可得直方图均衡化变换函数,即图像的灰度累积分布函数Sk 为:上式中, S k 为归一化灰度级。这个变换映射称做直方图均衡化或直方图线性化。 直方图均衡化过程如下: (1)输出原图像; (2)根据公式P r(r k)=n k/m*n(k=0,1,2,…,L-1)计算对应灰度级出现的概率,绘制原图像的直方图。(3)计算原图象的灰度级累积分布函数:sk=Σp r(r k); (4)取整Sk=round((S1*256)+0.5);将Sk归一到相近的灰度级,绘制均衡化后的直方图。 (5)将每个像素归一化后的灰度值赋给这个像素,画出均衡化后的图像。 2.根据直方图均衡化步骤对输入的原图象进行处理,输出的图像如下图所示。 由上图可以看出,采用直方图均衡化后,可使图像的灰度间距拉开或使灰度均匀分布,从而增大反差,使图像更加清晰,达到增强的目的。但直方图均衡在对灰度呈现两端分布,同时在图像的低灰度区域有较多像素点的图像进行处理后, 得不到满意的效果,达不到突出图像细节的目的。针对上述直方图均衡化的弊端,可以先计算出图像的灰度直方图,然后将其灰度进行拉伸,以便改善图像增强效果。

直方图图像处理实验报告

数字图像处理实验 实验一 直方图处理 实验目的 ● 理解图像直方图的概念,掌握图像直方图的绘制方法 ● 掌握直方图均衡化的原理,并会用直方图均衡化对图像进行处理。 实验要求 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 1 1 )()( 式中k =1,2,…,L ,s k 是输出图像中的亮度值,它对应于出入图像中的亮度值r k 。 实验心得: 1. matlab 的函数的功能很强大,一个简单的函数调用就可以解决复杂的问题。这样,就需要在函数调用时注意函数的参数,否则很容易出错。比如函数 histeq(a,n),就要注意其中的n 为灰度值的个数。 2. 对于自己编写函数实现某些特定的功能时,需要对原理掌握清楚,如实验二中需自己编写函数实现图像的均衡,就要求对直方图的均衡原理掌握到位。

绘制数字图像灰度直方图实验报告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编程和工具箱的使用,实现图像直方图均衡化的图像仿真。 关键词:直方图均衡化;图像增强;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 aa 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 引言

直方图均衡化处理

数字图像处理实验报告 姓名: 王程学号: 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 分析: 从上面各个图中可以看出在原图像中的一些看不到或看不清楚的细节在均衡化后可以

相关文档
最新文档