直方图均衡化及直方图规定化
利用直方图均衡化和规定化进行图像增强的算法设计 数字图像处理毕业论文

目录第1章绪论 (1)1.1 数字图像处理的研究背景 (1)1.2 数字图像处理的研究内容 (1)1.3 DSP系统简介 (2)1.4 图像增强简介 (4)第2章DSP系统 (5)2.1 DSP芯片 (5)2.1.1 DSP芯片的特点 (6)2.1.2 图像处理系统中DSP芯片的选择 (7)2.2 基于DSP的图像处理系统 (8)第3章图像增强 (9)3.1 图像增强的基本概念 (9)3.2 图像增强的方法 (9)3.2.1 图像锐化 (10)3.2.1.1 图像锐化原理 (10)3.2.1.2 拉普拉斯算子 (11)3.2.1.3 基于DSP的算法实现 (12)3.2.1.4 图片锐化效果比较 (14)3.2.2 Sobel边缘检测算法 (16)3.2.2.1 Sobel边缘检测算法原理 (16)3.2.2.2 Sobel边缘检测算法的变异及实现 (16)3.2.3 直方图均衡化算法 (20)3.2.3.1 直方图均衡化 (20)3.2.3.2 直方图规定化 (21)3.2.3.3实验结果及分析 (23)第4章直方图均衡化和规定化算法的DSP实现 (25)4.1 算法的DSP实现与优化 (25)4.1.1 算法开发硬件平台选择 (25)4.1.2 算法的实现与优化 (26)4.2 实验及结果分析 (27)结论 (31)致谢 (32)参考文献 (33)第1章绪论1.1 数字图像处理的研究背景数字图像处理又称为计算机图像处理,它最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。
数字图像处理作为一门学科大约形成于20世纪60年代初期。
图像处理的基本目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。
图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。
图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。
直方图均衡化计算

直方图均衡化计算直方图均衡化是基于灰度直方图的图像增强的一种方法,还有另外一种方法是直方图规定化。
均衡化的目的是将原始图像的直方图变为均衡分布的的形式,将一非均匀灰度概率密度分布图像,通过寻求某种灰度变换,变成一幅具有均匀概率密度分布的目的图像。
具体原理如下:1、连续灰度级:假定:r代表灰度级,P(r)为概率密度函数。
r值已经过归一化处理,灰度值范围在[0,1]之间。
r与P(r)之间的关系如下:非均匀分布的连续灰度直方图均衡化的目的是将上面的非均匀分布变成如下图所示的均匀分布:均匀分布的连续灰度直方图我们接下来要做的是要找到一种变换S=T(r)使直方图变平直,为使变换后的灰度仍保持从黑到白的单一变化顺序,且变换范围与原先一致,以避免整体变亮或变暗,需要有如下规定:(1)在0 <= r <= 1中,T(r)是单调递增函数,且0 <= T(r) <= 1;(2)反变换r=(s),(s)也为单调递增函数,且0 <= s <= 1。
直方图均衡化变换公式推导图示因为灰度变换不影响像素的位置分布,而且也不会增减像素数目,所以有如下的推导公式:2、离散灰度级:设一幅图像的像素总数为n,分为L个灰度级,其中::表示第K个灰度级出现的个数。
:第K个灰度级出现的概率。
(0<=<=1, k=0,1,2,...,L-1),公式如下:计算的基本步骤如下:(1)求出图像中所包含的灰度级,一般都经过归一化处理,范围在[0,1]之间,也可以定在[0,L-1]之间。
(2)统计各灰度级的像素数目(k=0,1,2,...,L-1)。
(3)计算图像直方图。
(4)计算变换函数,即:(5)用变换函数计算映射后输出的灰度级。
(6)统计映射后新的灰度级的像素数目。
(7)计算输出图像的直方图。
根据上面推导出来的公式以及计算步骤,我们可以结合栗子来加深理解~~~eg:设图像有64*64=4096的像素,有8个灰度级,灰度分布如下所示:由上图我们知道该图像的,和,下一步我们要做的就是通过变换函数求,即:依次可求得,,,,。
灰度直方图均衡化与规定化

一、课程设计目的(1)进一步掌握matlab的用法;(2)在实践中深入理解图像显示的方法;(3)学会用matlab对图像进行显示。
二、课程设计要求(1)根据题目,查阅有关资料,掌握图像显示技术;(2)学习MATLAB软件,掌握MATLAB各种函数的使用;(3)根据图像显示原理,运用MATLAB进行编程,仿真调制过程,记录并分析仿真结果;(4)形成设计报告。
三、设计方案一般情况下,如果图像的灰度分别集中在比较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使目标得到突出,达到图像增强的目的,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现.直方图的方法是以概率论为基础的.常用的方法有直方图均衡化和直方图规定化.(1)直方图均衡化直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像.其结果是扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果.直方图均衡化的具体实现步骤如下:1).列出原始图像的灰度级,-=Lfj1,,1,j2).统计各灰度级的像素数目=L,-nj1,,,1j3).计算原始图像直方图各灰度级的频数=Lj=P(-fnn/,)11,,,fjj4).计算累积分布函数1,,,1,0,)()(0-==∑=L k j f P f C k j j f5).应用以下公式计算映射后的输出图像的灰度级,P 为输出图像灰度级的个数,其中INT 为取整符号1,,1]5.0)()[(min min max -=++-=P i g f C g g INT g i6).统计映射后各灰度级的像素数目 ni, i=0,1,…,k,…P-1.7). 计算输出直方图Pg(gi)=ni/n, i=0,1,…,P-1.8). 用fj 和gi 的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像(2) 直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局的均衡化的直方图.实际工作中,有时需要变换直方图使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度,这时可采用比较灵活的直方图规定化方法.直方图规定化增强处理的步骤如下:令Pr (r )和Pz (z )分别为原始图像和期望图像的灰度概率密度函数。
【数字图像处理】直方图的均衡与规定化

【数字图像处理】直⽅图的均衡与规定化很多情况下,图像的灰度级集中在较窄的区间,引起图像细节模糊。
通过直⽅图处理可以明晰图像细节,突出⽬标物体,改善亮度⽐例关系,增强图像对⽐度。
直⽅图处理基于概率论。
直⽅图处理通常包括直⽅图均衡化和直⽅图规定化。
直⽅图均衡化可实现图像的⾃动增强,但效果不易控制,得到的是全局增强的结果。
直⽅图规定化可实现图像的有选择增强,只要给定规定的直⽅图,即可实现特定增强的效果。
直⽅图均衡化直⽅图均衡化借助灰度统计直⽅图和灰度累积直⽅图来进⾏。
灰度统计直⽅图灰度统计直⽅图反映了图像中不同灰度级出现的统计情况。
灰度统计直⽅图是⼀个⼀维离散函数,可表⽰为h (k )=n k ,k =0,1,...L −1,其中k 为某个灰度级,L 为灰度级的数量,最⼤取256,n k 为具有第k 级灰度值的像素的数⽬。
灰度直⽅图归⼀化概率灰度统计直⽅图的归⼀化概率表达形式给出了对s k 出现概率的⼀个估计,可表⽰为p s (s k )=n k /N ,k =0,1,2..,L −1式中,k 为某个灰度级;L 为灰度级的数量,最⼤取256;s k 为第k 级灰度值的归⼀化表达形式,s k =k /255,故s k ∈[0,1];n k 为具有第k 级灰度值的像素的数⽬;N 为图像中像素的总数,故(n k /N )∈[0,1]。
灰度累计直⽅图灰度累积直⽅图反映了图像中灰度级⼩于或等于某值的像素的个数。
灰度累积直⽅图是⼀个⼀维离散函数,可表⽰为H (k )=k ∑i =0n i ,k =0,1,2..,L −1式中,k 为某个灰度级;L 为灰度级的数量,最⼤取256;n i 为具有第i 级灰度值的像素的数⽬。
累积分布函数可以表⽰为:t k =k ∑i =0p s (s i )相对的,灰度累积直⽅图的归⼀化表⽰如下图:Processing math: 100%原理步骤直⽅图均衡化主要⽤于增强动态范围偏⼩的图像的反差。
直方图规定化

直方图规定化直方图规定化是指将一幅图像的像素值分布规定到另一幅图像的像素值分布上的过程。
其基本思想是通过将目标图像的像素值分布函数变换为规定分布函数,再将原始图像的像素值进行相应的变换,从而实现两幅图像的像素值分布逼近或一致。
直方图规定化可以用于图像处理的许多应用,例如图像增强、图像融合、图像匹配等。
下面将详细介绍直方图规定化的原理和实现步骤。
直方图规定化的原理如下:1. 给定一幅原始图像和一幅目标图像,分别计算它们的像素值频率分布函数H1(i)和H2(i)。
2. 对于每一个像素值i,计算原始图像和目标图像的积累密度函数C1(i)和C2(i)。
3. 构造映射关系,将原始图像的像素值映射到目标图像的像素值上。
可以通过计算C1(i)和C2(i)的差值,得到原始图像像素值i在目标图像上的对应像素值j。
4. 使用这个映射关系,对原始图像的每个像素值i进行变换,得到规定化后的图像。
直方图规定化的实现步骤如下:1. 计算原始图像和目标图像的像素值频率分布函数H1(i)和H2(i)。
2. 对原始图像和目标图像的分布函数进行归一化处理,得到归一化分布函数P1(i)和P2(i)。
3. 计算归一化分布函数的积累密度函数C1(i)和C2(i)。
4. 对于每一个像素值i,计算C1(i)和C2(i)之间的差值。
5. 找到C2(i) - C1(i)绝对值的最小值,并记录对应的像素值j。
6. 将原始图像的像素值i映射到目标图像的像素值j。
7. 使用这个映射关系,对原始图像的每个像素值i进行变换,得到规定化后的图像。
直方图规定化要求原始图像和目标图像的像素值范围相同,并且分布函数的积累密度函数单调递增。
如果原始图像和目标图像的像素值范围不同,可以通过直方图均衡化等方法进行一定的预处理。
在实际应用中,直方图规定化是一个重要的图像处理技术,可以根据目标图像的特点调整原始图像的像素值分布,从而实现图像的增强和融合效果。
此外,直方图规定化还可以用于图像匹配,将不同图像的像素值分布规定为一致,方便后续的图像匹配和目标检测等任务。
图像直方图均衡的标准化与规定化处理

图像直方图均衡的标准化处理均衡化基本原理:对在图像中像素个数多的灰度值(即对画面其主要作用的灰度值)进行展宽,而对像素个数少的灰度值进行归并,从而达到清晰图像的目的。
代码:img=imread('tim.jpg');figure,imshow(img);[m,n]=size(img); %测量图像尺寸参数h=zeros(1,256) %预创建存放灰度出现概率的向量for k=0:255h(k+1)=length(find(img==k))/(m*n);endfigure,bar(0:255,h,'k') %绘制直方图title('原图像直方图')xlabel('灰度值')ylabel('出现概率')S1=zeros(1,256);for i=1:256for j=1:iS1(i)=h(j)+S1(i); %计算SkendendS2=round(S1*256); %将Sk归到相近级的灰度for i=1:256heq(i)=sum(h(find(S2==i))); %显示均衡化后的直方图endfigure,bar(0:255,heq,'k') %显示灰度变化曲线title('均衡化后的直方图')xlabel('灰度值')ylabel('出现概率')figure,plot(0:255,S2,'r') %显示灰度变化曲线legend('灰度变化曲线')xlabel('原图像灰度级')ylabel('均衡化后灰度级')TR=img;for i=0:255TR(find(img==i))=S2(i+1); %将各个像素归一化后的灰度值付给这个像素endfigure,imshow(TR) %将各个像素归一化后的灰度值赋给这个像素 title('均衡化后图像')imwrite(TR,'tim.jpg');实验效果图:原图像原图像直方图标准化后图像标准化后直方图:灰度变化曲线图像直方图均衡的规定化处理直方图规定化的基本原理:有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配。
对比度增强的方法

对比度增强的方法对比度增强是数字图像处理中一种常用的图像增强技术,其目的是通过调整图像中不同亮度级的像素值,使图像中的细节更加明显,从而提高图像的视觉质量。
在数字图像中,对比度越高,图像的明暗差异越明显,细节越清晰。
以下是几种常用的对比度增强方法:1.直方图拉伸:直方图拉伸是一种简单且有效的对比度增强方法。
它通过将图像的像素值线性映射到一个更宽的值域范围内,以扩展原始图像的灰度级范围。
这样可以使图像的黑色和白色更加明显,细节更加清晰。
2.直方图均衡化:直方图均衡化是一种通过重新分布图像中像素的灰度级来增强对比度的方法。
通过对图像的累积分布函数进行均衡化,可以使得图像中的灰度级分布更加均匀,从而提高图像的对比度。
但是,直方图均衡化可能会导致图像的整体亮度发生变化,需要进一步处理以保持原始图像的亮度。
3.自适应直方图均衡化:自适应直方图均衡化是一种改进的直方图均衡化方法,可以在不影响图像整体亮度的情况下增强图像的对比度。
它将图像划分为多个小块,在每个小块上进行直方图均衡化,以适应不同区域的亮度变化。
4.对比度拉伸:对比度拉伸是一种通过压缩图像的动态范围来增强对比度的方法。
它将图像的像素值重新映射到一个较小的范围内,以增加图像中各个灰度级之间的差异。
通常可以通过设置一个合适的拉伸参数来控制拉伸的程度。
5.非线性映射:非线性映射是一种通过对图像像素值进行非线性的转换来增强对比度的方法。
常用的非线性映射函数包括对数变换、幂次变换等。
这些函数可以调整图像中较低或较高灰度级的像素值,以增强图像中的细节。
此外,还有一些其他的对比度增强方法,如灰度变换、直方图规定化等,它们都可以通过调整图像像素值的分布来增强对比度。
选择合适的对比度增强方法需要考虑图像的特点以及增强的目的,最终效果的好坏需要通过实验来验证。
(精品)数字图像处理实验报告--直方图规定化

数字图像处理实验报告直方图匹配规定化直方图均衡化能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。
实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。
这时可以采用比较灵活的直方图规定化。
一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。
所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。
所以,直方图修正的关键就是灰度映像函数。
直方图匹配方法主要有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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字图像处理》实验
报告(二)
学号:____________ 姓名:__________ 专业:____ 课序号:__________
计算机科学与技术学院
实验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)
上述求和区间为0到k,根据该方程可以由源图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。
在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk到gk的灰度映射关系。
在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。
3.图像直方图变换的基本原理:
设变量r代表图像中像素的灰度级,直方图变换就是假定一个变换式:
(1-1)
也就是,通过上述变换,每个原始图像的像素灰度级r都会产生一个s值。
变换函数T(r)应满足以下条件:
(1)T(r)在区间中为单值且单调递增;
(2)当时,,即T(r)的取值范围与r相同。
2. 直方图均衡化:
对于离散值,我们处理其概率与求和,而不是概率密度函数与积分。
一幅图像中灰度级r k 出现的概率近似为
(1-2)
其中,n是图像中像素的总和,是灰度级的像素个数,L为图像中可能的灰度级总数。
(1-3)
上式中变换函数的离散形式为:
该变换(映射)称为直方图均衡化或直方图线性化。
优缺点
这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X 光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。
这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。
这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景杂讯的对比度并且降低有用信号的对比度;变换后图像的灰度级减少,某些细节消失;某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
2、请给出本实验的核心源码(Matlab或C语言):
I=imread('C:\Users\wh\Desktop\photo\Rockies.bmp'); %读
imshow(I);
figure,imhist(I);
[J,T]=histeq(I,64); %图像灰度扩展到0~255,但是只有64个灰度级figure,imshow(J);
figure,imhist(J);
figure,plot((0:255)/255,T); %转移函数变换曲线
J=histeq(I,32);
figure,imshow(J); %图像灰度扩展到0~255,但只有32个灰度级
figure,imhist(J);
3
、实验结果分析(要求附上结果图像):
0 100 200 300 400 500 600 700 800 900 0 50 100 150 200 250 原图像直方图 原图像
500
1000
1500
050100150200250图像灰度扩展到0~255,但是只有64个灰度级
直方图显示
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 转移函数变换曲线 图像灰度扩展到0~255,但只有32个灰度级
(下附显示各像素灰度级的mat 文件)
0 200 400 600 800 1000 1200 1400 1600 1800 2000 0 50 100 150 200 250
4、实验体会:
1.工欲善其事,必先利其器,matlab简单几行代码就解决了VC中可能上
百上千行的程序。
2.正确调用内置子程序是非常便利的。
5、思考题部分:
1.直方图规定化程序代码:
>> f=imread('C:\Users\wh\Desktop\photo\Rockies.bmp');
>> imshow(f);
figure,imhist(f);
ylim('auto');
g=histeq(f,256);
figure,imshow(g);
figure,imhist(g);
ylim('auto');
2.图像处理
原图像
200
400
600
800
原图像直方图
050100150200250
200
400
600
800
1000
1200
1400
050100150200250
200
400
600
800
1000
1200
1400
050100150200250。