直方图均衡化与规定化

合集下载

图像增强——直方图均衡化

图像增强——直方图均衡化

图像增强——————直方图均衡化摘要图像增强是指按特定的需要突出一幅图像的某些信息,削弱或消除不需要信息的处理方法。

处理的结果使图像更适合于人的视觉特性或机器的识别系统。

本文主要采用直方图均衡化、中值滤波的方法对图像进行处理,通过对处理结果进行比较,从而加深对图像增强的理解及应用。

一、图像增强在获取图像的过程中,由于多种因素的影响导致图像无法达到令人满意的视觉效果。

对原始图像做一些改善,从而实现人眼观察或者机器自动分析、识别的目的的行为,就叫做图像增强。

图像增强的主要内容⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎪⎪⎩⎪⎪⎪⎨⎧⎪⎪⎩⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧⎩⎨⎧⎪⎪⎩⎪⎪⎨⎧⎩⎨⎧代数运算彩色变换增强彩色平衡假彩色增强常规处理彩色图像增强伪彩色增强彩色增强同态滤波增强低通滤波高通滤波频率域图像锐化图像平滑局部运算局部统计法规定化均衡化直方图修正法灰度变换点运算空间域图像增强二、直方图均衡化1.直方图均衡化是通过累积函数对灰度值进行调整以实现对比度的增强,具体地说就是把给定图像的直方图分布改变成近似均匀分布的直方图。

2.直方图均衡化的过程如下:①计算原图像的灰度直方图;②计算原图像的灰度累积分布函数,进一步求出灰度转换表; ③根据灰度转换表,将原图像各灰度级映射为新的灰度级。

3.直方图均衡化的优点:扩张了像素值的动态范围。

直方图均衡化后,图像的概率密度函数近似服从均匀分布,灰度几乎是均匀的分布在整个范围内,图像明暗分明,对比度很大,图像比较清晰明亮,很好的改善了原始图的视觉效果。

2.1原理及计算过程先讨论连续图像的均衡化问题。

设变量r 和s 代表原图像灰度和经直方图修正后的的图像灰度。

在图像中,像素的灰度级可作归一化处理,这样r,s 的值将限定在下述范围之内:0≤r,s ≤1,r=0代表黑,r=1代表白,可以对[0,1]区间内的任一个值进行如下变换:s=T(r)变换函数T 应满足下列条件:(1)在0≤r ≤1区间内T[r]单值单调增加; (2)对于0≤r ≤1,有0≤s ≤1。

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

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

目录第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. 使用IPT中imhist,histeq函数进行直方图的均衡化和规定化,并显示结果2. 编写myhisteq函数实现直方图均衡化,与1中结果进行对比3. 给读取的图像叠加椒盐噪音(imnoise),分别使用均值滤波和中值滤波进行去噪,并对比图像处理的结果(使用IPT函数)4. 自定义3*3模板矩阵F,编写myfilter函数实现模板和图像的卷积运算,设计模板矩阵,实现图像的平滑和锐化。

三、实验代码及结果(1) 直方图的均衡化和规定化clc;clear;I= imread('H:\image\jpg\flower.jpg');I= rgb2gray(I) ; %将图像转换为灰度图像J= histeq( I) ; %对I 进行直方图均衡化figure,subplot( 2,2,1) ,imshow(I) ,title('原始图像') ;subplot (2,2,2), imshow(J), title('直方图均衡化后的图像');subplot( 2,2,3) ,imhist(I, 64), title( '原始的直方图');subplot( 2,2,4) ,imhist(J,64) ,title(' 均衡化后的直方图');clc;clear;I= imread('H:\image\jpg\flower.jpg');I= rgb2gray(I) ; %将图像转换为灰度图像h=0:255;h=1-h/255;J= histeq( I,h) ;figure,subplot( 2,3,1) ,imshow(I) ,title('原图像') ; subplot( 2,3,2) ,imhist(I, 64), title( '原图像的直方图'); subplot (2,3,3), stem(h), title('目标直方图');subplot( 2,3,4) ,imshow(I, 64), title( '规定化后的图像'); subplot( 2,3,5) ,imhist(J,64) ,title(' 规定化后的直方图');二、myhisteq函数实现直方图均衡化I = imread('j:\image\jpg\flower.jpg');I = rgb2gray(I);[height,width] = size(I);figuresubplot(2,2,1)imshow(I)%显示原始图像title('原图像');subplot(2,2,2)imhist(I)%显示原始图像直方图title('原图像直方图');%进行像素灰度统计;s = zeros(1,256);%统计各灰度数目,共256个灰度级for i = 1:heightfor j = 1: widths(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一endend%计算灰度分布密度p = zeros(1,256);for i = 1:256p(i) = s(i) / (height * width * 1.0);end%计算累计直方图分布c = zeros(1,256);c(1) = p(1);for i = 2:256c(i) = c(i - 1) + p(i);end%累计分布取整,将其数值归一化为1~256c = uint8(255 .* c + 0.5);%对图像进行均衡化for i = 1:heightfor j = 1: widthI(i,j) = c(I(i,j)+1);endendsubplot(2,2,3)imshow(I)%显示均衡化后的图像title('均衡化后图像');subplot(2,2,4)imhist(I)%显显示均衡化后的图像的直方图title('均衡化后图像的直方图');三、使用均值滤波和中值滤波进行去噪I= imread('j:\image\jpg\flower.jpg');I= rgb2gray(I) ; %将图像转换为灰度图像I1 = imnoise(I,'salt & pepper',0.02);%0.02是噪声强度,其值越大噪声越多h=fspecial('average',5);J1=filter2(h,I1,'valid');J2= imfilter(I1,h,'full');figure,subplot(3,3,1),imshow(I1);title('原始椒盐噪声图像图1');subplot(3,3,2),imshow(uint8(J1));title('filter2均值滤波图2');subplot(3,3,3),imshow(J2);title('imfilter均值滤波图3');J3 = medfilt2(I1,[5,5]);subplot(3,3,4),imshow(J3),title('中值滤波效果图4');G1= histeq(I1);subplot(3,3,5),imhist(G1,64),title('原图均衡化后的直方图');G2= histeq(J1);subplot(3,3,6),imhist(uint8(G2),64),title('图2均衡化后直方图'); G3= histeq(J2);subplot(3,3,7),imhist(G3,64),title('图3均衡化后直方图');G4= histeq(J3);subplot(3,3,8),imhist(G4,64),title('图4均衡化后直方图');问题:对于filter2均值滤波均衡化直方图不显示,不知道原因。

直方图均衡化与规定化

直方图均衡化与规定化

直方图均衡化与规定化%----------------------------选择图片路径及显示---------------------------% global f%选择图片路径[filename,pathname]= ... %...表示与下行连接uigetfile({'*.bmp';'*.jpg';'*gif';'*tif'},'选择图片');%打开文件类型,对话框名称f=imread([pathname filename]);axes(handles.axes1); %在axes1显示原图像imshow(f) ;title('原始图像');%------------------设置下拉菜单分别选择显示图像------------%global fva=get(handles.popupmenu1,'Value');val=get(hObject,'Value');switch val %用switch语句设置选项case 1 %原图像直方图I=double(f);[m,n]=size(I);H=zeros(1,256);for i=1:mfor j=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);for i=1:256 s(i)=H(i)/(m*n);for j=1:it(i)=t(i)+s(j);endendaxes(handles.axes2);plot(s);title('原图像直方图');case 2 %均衡化后图像及直方图I=double(f);[m,n]=size(I);H=zeros(1,256);for i=1:mfor j=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);for i=1:256 s(i)=H(i)/(m*n);for j=1:it(i)=t(i)+s(j);endendt1=round(t*(256-1)+0.5);H1=zeros(1,256);for i=1:256H1(t1(i))=H1(t1(i))+s(i);endaxes(handles.axes4);bar(H1);title('均衡化后直方图');I2=t1(I+1)-1;axes(handles.axes3);imshow(uint8(I2));title('均衡化后图像');case 3 %规定化后图像及直方图I=f;J=I;New=I;L=256; %灰度级Ps=zeros(L,1); % 存储原图像直方图概率数据nk=zeros(L,1); % 存储原图像直方图数据nk2=zeros(L,1); % 存储直方图规定化后的图像的直方图Rk=zeros(L,1); % 存储原图像累积直方图数据Ps2=zeros(L,1);Rk2=zeros(L,1);[row,col]=size(I); % 计算图像数据矩阵的行列数n=row*col; %总像素个数for i = 1:rowfor j = 1:colnum = double( I(i,j))+1; %获取像素灰度级nk(num) = nk(num)+1; %统计nkendend%计算直方图概率估计for i=1:LPs(i)=nk(i)/n;%计算累积直方图if i==1Rk(i)=Ps(i);else 1<=256Rk(i)=Rk(i-1)+Ps(i);end%规定化直方图Ps2Temp=[0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,39),0.05,zeros(1,19),0.05,zeros(1,19),0.05,zeros(1, 19),ones(1,80).*0.0045,ones(1,16).*0.0088];Ps2=Ps2Temp';%计算规定化累积直方图for c=1:Lif c==1Rk2(c)=Ps2(c);elseRk2(c)=Rk2(c-1)+Ps2(c);endend%计算原图像与目标图像累计直方图数值的差的绝对值double ScMin=zeros(256,256);for Y=1:Lfor X=1:LScMin(X,Y)=abs(Rk(Y)'-Rk2(X)');endend%建立映射HisM=zeros(L:1);for P=1:Lmin = 0;minV=ScMin(1,P);for Q=1:Lif(minV>ScMin(Q,P))minV=ScMin(Q,P);min = Q;endendHisM(P)= min;end%将原图像的每个像素灰度转换为直方图均衡化后的灰度for x = 1:rowfor y = 1:colNum = double( I(x,y))+1;if Num==iNew(x,y)=HisM(i);endendendend%计算直方图规定化后的直方图for p = 1:rowfor q = 1:colNN = double( New(p,q))+1;nk2(NN) = nk2(NN)+1;endendaxes(handles.axes5);imshow(New),title('规定化后图像');axes(handles.axes6);plot(Ps2),title('规定化后直方图');end;%--------------------直接调用函数-----------------------------------------%global fva=get(handles.popupmenu2,'Value');val=get(hObject,'Value');switch valcase 1axes(handles.axes1); %在axes1显示图像imshow(f);title('原图像');axes(handles.axes2);h=imhist(f,256);plot(h)ylim('auto'); %自动设定Y轴坐标范围和刻度title('原始直方图')case 2j=histeq(f);axes(handles.axes3);imshow(j) ;title('均衡化图像');axes(handles.axes4);h=imhist(j,256);plot(h)ylim('auto');title('均衡化图像直方图')case 3hgram=50:2:250k=histeq(f,hgram);axes(handles.axes5);imshow(k) ;title('规定化图像');axes(handles.axes6);h=imhist(k,256);plot(h)ylim('auto');title('规定化图像直方图')end;3、实验结果GUI界面设计:选择图片路径:直接调用函数均衡化和规定化:原图像与均衡化和规定化后对比:结果分析:通过直接调用函数和编程对图像进行处理的结果对比,可以看出实验结果和理论结果基本一致;在编程处理中,可以自定义对规定化中的直方图(Ps2Temp)进行修改,从而得到所希望的图像增强效果.。

利用直方图均衡化和直方图规定化对图像进行增强

利用直方图均衡化和直方图规定化对图像进行增强

利用直方图均衡化和直方图规定化对图像进行增强利用直方图均衡化和直方图规定化对图像进行增强4.1 利用直方图均衡化对图像进行增强通过灰度变换将一幅图像转换为另一幅具有均衡直方图的图像,即在一定灰度范围内具有相同的象素点数的图像的过程。

其“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

主要缺点:1、变换后图像的灰度级减少,某些细节消失;2、某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

算法如下:为讨论方便,以r 和s 分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。

即1,0≤≤s r在[0,1]内设有变换S=T(r)且该函数单调递增,1)(0≤≤r T ,于是有反变换)(1s T r -=有概率论知,如果已知随即变量r 的概率密度)(r p r ,而随机变量s 是r 的函数。

则s 的概率密度)(s p s 可以有)(r p r 求出。

[])()()()()(1s T ds d r p ds dr r p dr r p ds d s p r r r r s -∞-===?从上式可以看出通过变换函数)(r T 可以控制图像灰度级的概率密度函数,从而改变图像灰度层次,这就是直方图修正技术的基础。

因为归一化规定 1)(=s p s有1式有 dr r p ds r )(=两边积分得 dr r p r T s rr )()(0?==上式就是所求得的变换函数。

它表明当变换函数)(r T 是原图像直方图累积分布函数时,能达到直方图均衡化的目的。

离散形式可表示为:∑∑=====ki i k i i r k k n n r p r T s 00)()(可见均衡后的各像素的灰度值k s 可直接由原图像的直方图算出。

python用直方图规定化实现图像风格转换

python用直方图规定化实现图像风格转换

python⽤直⽅图规定化实现图像风格转换以下内容需要直⽅图均衡化、规定化知识均衡化:规定化:直⽅图均衡化应⽤:图像直⽅图均衡化能拉伸灰度图,让像素值均匀分布在0,255之间,使图像看起来不会太亮或太暗,常⽤于图像增强;直⽅图规定化应⽤:举个例⼦,当我们需要对多张图像进⾏拼接时,我们希望这些图⽚的亮度、饱和度保持⼀致,事实上就是让它们的直⽅图分布⼀致,这时就需要直⽅图规定化。

直⽅图规定化与均衡化的思想⼀致,事实上就是找到各个灰度级别的映射关系。

具体实现的过程中⼀般会选⼀个参考图像记为A,找到A的直⽅图与⽬标图像的直⽅图的映射关系,从⽽找到⽬标图像的像素以A为“参考”时的映射关系。

具体实现可参考⽂中链接(看完茅塞顿开)基于python利⽤直⽅图规定化统⼀图像风格参考图像原始图像(第⼀⾏)/处理后的图像(第⼆⾏)源码:import osimport cv2import numpy as npdef get_map(Hist):# 计算概率分布Prsum_Hist = sum(Hist)Pr = Hist/sum_Hist# 计算累计概率SkSk = []temp_sum = 0for n in Pr:temp_sum = temp_sum + nSk.append(temp_sum)Sk = np.array(Sk)# 计算映射关系img_mapimg_map = []for m in range(256):temp_map = int(255*Sk[m] + 0.5)img_map.append(temp_map)img_map = np.array(img_map)return img_mapdef get_off_map(map_): # 计算反向映射,寻找最⼩期望map_2 = list(map_)off_map = []temp_pre = 0 # 如果循环开始就找不到映射时,默认映射为0for n in range(256):try:temp1 = map_2.index(n)temp_pre = temp1except BaseException:temp1 = temp_pre # 找不到映射关系时,近似取向前最近的有效映射值off_map.append(temp1)off_map = np.array(off_map)return off_mapdef get_infer_map(infer_img):infer_Hist_b = cv2.calcHist([infer_img], [0], None, [256], [0,255])infer_Hist_g = cv2.calcHist([infer_img], [1], None, [256], [0,255])infer_Hist_r = cv2.calcHist([infer_img], [2], None, [256], [0,255])infer_b_map = get_map(infer_Hist_b)infer_g_map = get_map(infer_Hist_g)infer_r_map = get_map(infer_Hist_r)infer_b_off_map = get_off_map(infer_b_map)infer_g_off_map = get_off_map(infer_g_map)infer_r_off_map = get_off_map(infer_r_map)return [infer_b_off_map, infer_g_off_map, infer_r_off_map]def get_finalmap(org_map, infer_off_map): # 计算原始图像到最终输出图像的映射关系 org_map = list(org_map)infer_off_map = list(infer_off_map)final_map = []for n in range(256):temp1 = org_map[n]temp2 = infer_off_map[temp1]final_map.append(temp2)final_map = np.array(final_map)return final_mapdef get_newimg(img_org, org2infer_maps):w, h, _ = img_org.shapeb, g ,r =cv2.split(img_org)for i in range(w):for j in range(h):temp1 = b[i,j]b[i,j] = org2infer_maps[0][temp1]for i in range(w):for j in range(h):temp1 = g[i,j]g[i,j] = org2infer_maps[1][temp1]for i in range(w):for j in range(h):temp1 = r[i,j]r[i,j] = org2infer_maps[2][temp1]newimg = cv2.merge([b,g,r])return newimgdef get_new_img(img_org, infer_map):org_Hist_b = cv2.calcHist([img_org], [0], None, [256], [0,255])org_Hist_g = cv2.calcHist([img_org], [1], None, [256], [0,255])org_Hist_r = cv2.calcHist([img_org], [2], None, [256], [0,255])org_b_map = get_map(org_Hist_b)org_g_map = get_map(org_Hist_g)org_r_map = get_map(org_Hist_r)org2infer_map_b = get_finalmap(org_b_map, infer_map[0])org2infer_map_g = get_finalmap(org_g_map, infer_map[1])org2infer_map_r = get_finalmap(org_r_map, infer_map[2])return get_newimg(img_org, [org2infer_map_b, org2infer_map_g, org2infer_map_r]) if __name__ == "__main__":dstroot = './imgs'infer_img_path = './abc.png'infer_img = cv2.imread(infer_img_path)outroot = './out1'infer_map = get_infer_map(infer_img) # 计算参考映射关系dstlist = os.listdir(dstroot)for n in dstlist:img_path = os.path.join(dstroot, n)print(img_path)img_org = cv2.imread(img_path)new_img = get_new_img(img_org, infer_map) # 根据映射关系获得新的图像new_path = os.path.join(outroot, n)cv2.imwrite(new_path, new_img)。

直方图修正法

直方图修正法

重庆交通大学测量与空间信息处理实验报告实验课程:遥感原理及应用实验名称:直方图修正法班级:姓名:学号:实验日期:2012 年11 月17 日实验原理一.直方图均衡化直方图均衡算法是图象增强空域法中的最常用、最重要的算法之一。

目前较常用的增强方法有全局直方图均衡化、局部直方图均衡化两大类。

全局直方图均衡化是将原图像的直方图通过变换函数变为均匀的直方图, 然后按均匀直方图修正原图像, 从而获得一幅灰度分布均匀的新图像。

它以概率理论作基础, 运用灰度点运算来实现直方图的变换, 从而达到图象增强的目的。

它的变换函数取决于图像灰度直方图的累积分布函数。

概括的说, 就是把一已知灰度概率分布的图像, 经过一种变换, 使之演变成一幅具有均匀概率分布的新图像。

当图像的直方图为一均匀分布时,图像的信息熵最大,此时图像包含的信息量最大,图像看起来就显得清晰。

下面先讨论连续变化图像的均衡化问题。

设r 、s 分别表示原图像和增强后图像的灰度。

假设r 被归一化到区间[0,1], 且r =0 表示黑色及 r = 1表示白色。

当r 、s 在[0,1] 之间时,表示像素灰度在黑白之间变化。

灰度变换函数为s=T(r) 0≤r≤1 (1)它满足以下两个条件:(1) T(r)在区间0≤r≤1中为单值且单调递增;(2) 当0≤r≤1时, 0 ≤T(r)≤1;条件(1)中要求T(r)为单值是为了保证反变换存在, 单调条件保证原图各灰度级在变换后仍保持从黑到白( 或从白到黑) 的排列次序;条件(2)保证变换前后灰度值动态范围的一致性。

图1 给出了满足这两个条件的一个变换函数的例子, 由s 到r 的反变换可以表示为:= 0≤s≤1 (2)r-),(1sT即使 T(r)满足条件(1)和(2), 相应的函数)(1sT-也可能不为单值。

一幅图像的灰度级可被视为区间[0,1] 的随机变量。

令)(r p r 和)(s p s 分别代表随机变量 r 和s 的概率密度函数。

直方图

直方图
sk T (rk ) pr (r j )
j 0 j 0 k k
nj n
乘以n,再四舍五 入取整
44
说明
由于数字图像灰度取值的离散性,通过四 舍五入使得变换后的灰度值出现了归并现 象,从而致使变换后的图像并非完全均匀 分布,但是相比原始直方图要均匀得多
直方图修正
2.直方图规定化/直方图匹配 在某些情况下,并不一定需要具有均匀直 方图的图像,有时需要具有特定的直方图 的图像,以便能够增强图像中某些灰度级。 直方图规定化方法就是针对上述思想提出 来的。 直方图规定化是使原图像灰度直方图变成 规定形状的直方图而对图像作修正的增强 方法
0.89
0.95 0.98 1.00
6/7
1 1 1
s3=6/7
985
0.24
s4=1
448
0.11
41
例:
原图像的直方图
均衡后图像的直方图
42
例:直方图均衡化示例
43
例:
思考问题: 若在原图像一行上连续8个像素的灰度值分 别为:0、1、2、3、4、5、6、7,则均衡 后,对应的灰度值为多少?
46
直方图规定化
可见,它是对直方图均衡化处理的一种有 效的扩展。直方图均衡化处理是直方图规 定化的一个特例 对于直方图规定化,下面仍从灰度连续变 化的概率密度函数出发进行推导,然后推 广出灰度离散的图像直方图规定化算法
47
直方图规定化
假设pr(r)和pz(z)分别表示已归一化的原始 图像灰度分布的概率密度函数和希望得到 的图像的概率密度函数 首先对原始图像进行直方图均衡化,即求 变换函数:
H Pi log2 Pi
i 0 L 1
17

直方图均衡化算法-Read.PPT

直方图均衡化算法-Read.PPT

0.5
S=kr+b 0
0.5
1
(d)反转函数
(d)反转效果
(c)变换结果
图6-21 不同线性灰度变换 效果的比较
非线性单调点变换
L-1
s
0 r
图6-22非线性点运算
T(r)=r+kr(L-r)
L-1
(6-34)
S型函数
指数变换
s=cy
(6-38)
c和y为常数。
当 1时,具有扩展低亮度区、压缩高亮度区的
输出图像灰度概率密度数学模型
均匀 (Uniform)
指数 (Exponitial)
瑞利 (Raleigh)
双曲线 (立方根) (Hyperbolic)
双曲线(对数)
转移函数
直方图规定化算法
设Pf(fi)原始图像直方图,Pz(zi)期望输出图像的直方图, fj, zi [0,L-1]。
1.分别对 Pf(fj), Pz(zi)作均衡化处理, fj gm, zi yn;
gi=INT[(gmax-gmin)c(f)+gmin+0.5] 6.统计映射后各灰度级的象素数目ni, i=0,1,…,p-1; 7.计算输出图像直方图Pg(gi)= nj/n,i=0,1,…,p-1; 8.用fj和gi的映射关系,修改原始图像灰度级,获得直方图近似均匀分布 的输出图像。
Байду номын сангаас
典型直方图变换的转移函数
2.在 gm yn 处组合, Pf(fi) Pz(zi)。 gm=T(fj), yn=G(zi), gm yn, zi=G-1[T(fj)]
6.2.4小结
■ 点运算是对图像的灰度级进行变换; ■ 点运算可用于光度学校正、显示校正、图像增强和直方图

【数字图像处理】直方图的均衡与规定化

【数字图像处理】直方图的均衡与规定化

【数字图像处理】直⽅图的均衡与规定化很多情况下,图像的灰度级集中在较窄的区间,引起图像细节模糊。

通过直⽅图处理可以明晰图像细节,突出⽬标物体,改善亮度⽐例关系,增强图像对⽐度。

直⽅图处理基于概率论。

直⽅图处理通常包括直⽅图均衡化和直⽅图规定化。

直⽅图均衡化可实现图像的⾃动增强,但效果不易控制,得到的是全局增强的结果。

直⽅图规定化可实现图像的有选择增强,只要给定规定的直⽅图,即可实现特定增强的效果。

直⽅图均衡化直⽅图均衡化借助灰度统计直⽅图和灰度累积直⽅图来进⾏。

灰度统计直⽅图灰度统计直⽅图反映了图像中不同灰度级出现的统计情况。

灰度统计直⽅图是⼀个⼀维离散函数,可表⽰为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%原理步骤直⽅图均衡化主要⽤于增强动态范围偏⼩的图像的反差。

图像直方图均衡的标准化与规定化处理

图像直方图均衡的标准化与规定化处理

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

代码: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');实验效果图:原图像原图像直方图标准化后图像标准化后直方图:灰度变化曲线图像直方图均衡的规定化处理直方图规定化的基本原理:有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配。

直方图均衡化及规定化

直方图均衡化及规定化

直方图均衡化
直方图均衡化示意图
图(a) 原图灰度级直方图;图(b) 累积变换后的直方图; 图(c) 均衡化后的直方图;
直方图均衡化
直方图均衡化
直方图规定化
直方图规定化的原因: 在实际应用中,希望能够有目的地增强某 个灰度区间的图像, 即能够人为地修正直 方图的形状, 使之与期望的形状相匹配, 这就是直方图规定化的基本思想。
s G( z ) ( L 1) q(t )dt
0 z
3.由于它们的直方图均衡化图像理论上是一样的,即:
G( z ) s T (r ), z G 1[T (r )] G 1[s]
于是就得到了根据指定直方图来变换图像的直方图匹配变换。
直方图规定化
直方图规定化
直方图规定化
原图 均衡化的图像
直方图规定化
例如:Pr (r)为原图像的灰度密度函数, Pz (z)为希 望得到的增强图像的灰度密度函数,二者的直方图 如下:
直方图规定化
直方图规定化基本步骤:
1.先对原图做直方图均衡化,得到
s T (r ) ( L 1) p(t )dt
0 r
2.再对规定的直方图均衡化,得到
就给出了一个函数图形,称为直方图。
直方图未规范化 规范化直方图均衡化均衡化的原因: 大多数自然图像,其灰度分布集中在较窄的区间,引起 图像细节不够清晰,采用直方图修正后可使图像的灰度间距 拉开或使灰度分布均匀,从而增大反差,使图像细节清晰,
达到增强的目的。
直方图均衡化
直方图均衡化处理的“中心思想”: 把原始图像的灰度直方图从比较集中的某个灰度区间
变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配

【数字图像处理】灰度直方图、直方图均衡化、直方图规定化

【数字图像处理】灰度直方图、直方图均衡化、直方图规定化

【数字图像处理】灰度直⽅图、直⽅图均衡化、直⽅图规定化灰度直⽅图 ⼀幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的⼀个重要特征。

图像的灰度直⽅图就描述了图像中灰度分布情况,能够很直观的展⽰出图像中各个灰度级所占的多少。

图像的灰度直⽅图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的频率。

灰度直⽅图的计算公式如下:p(rk)=nk/MN其中,rk是像素的灰度级,nk是具有灰度rk的像素的个数,MN是图像中总的像素个数。

直⽅图均衡化 Histogram Equalization假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对⽐度较低。

通常采⽤直⽅图均衡化及直⽅图规定化两种变换,使图像的灰度范围拉开或使灰度均匀分布,从⽽增⼤反差,使图像细节清晰,以达到增强的⽬的。

直⽅图均衡化,对图像进⾏⾮线性拉伸,重新分配图像的灰度值,使⼀定范围内图像的灰度值⼤致相等。

这样,原来直⽅图中间的峰值部分对⽐度得到增强,⽽两侧的⾕底部分对⽐度降低,输出图像的直⽅图是⼀个较为平坦的直⽅图。

均衡化算法直⽅图的均衡化实际也是⼀种灰度的变换过程,将当前的灰度分布通过⼀个变换函数,变换为范围更宽、灰度分布更均匀的图像。

也就是将原图像的直⽅图修改为在整个灰度区间内⼤致均匀分布,因此扩⼤了图像的动态范围,增强图像的对⽐度。

通常均衡化选择的变换函数是灰度的累积概率,直⽅图均衡化算法的步骤:计算原图像的灰度直⽅图 P(Sk)=nknP(Sk)=nkn,其中nn为像素总数,nknk为灰度级SkSk的像素个数计算原始图像的累积直⽅图 CDF(Sk)=∑i=0knin=∑i=0kPs(Si)CDF(Sk)=∑i=0knin=∑i=0kPs(Si)Dj=L⋅CDF(Si)Dj=L⋅CDF(Si),其中 DjDj是⽬的图像的像素,CDF(Si)CDF(Si)是源图像灰度为i的累积分布,L是图像中最⼤灰度级(灰度图为255)灰度直⽅图均衡化实现的步骤1.统计灰度级中每个像素在整幅图像中的个数2.计算每个灰度级占图像中的概率分布3.计算累计分布概率4.计算均衡化之后的灰度值5.映射回原来像素的坐标的像素值⽰例说明来看看通过上述步骤怎样实现的拉伸。

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

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

《数字图像处理》实验报告(二)学号:____________ 姓名:__________ 专业:____ 课序号:__________计算机科学与技术学院实验2直方图均衡化一、实验学时:4学时(本部分占实验成绩的40%)二、实验目的:1、理解直方图均衡化的原理及步骤;2、编程实现图像(灰度或彩色)的直方图均衡化。

三、必须学习和掌握的知识点:直方图均衡化是一种快速有效且简便的图像空域增强方法,在图像处理中有着非常重要的意义,因此要求掌握。

四、实验题目:编程实现灰度图像的直方图均衡化处理。

要求给出原始图像的直方图、均衡化图像及其直方图和直方图均衡化时所用的灰度级变换曲线图。

五、思考题:(选做,有加分)实现对灰度图像的直方图规定化处理。

六、实验报告:请按照要求完成下面报告内容并提交源程序、可执行程序文件和实验结果图像。

1、请详细描述本实验的原理:1.直方图均衡化概述图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。

直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。

直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。

直方图均衡化的英文名称是Histogram Equalization.直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。

这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。

通过这种方法,亮度可以更好地在直方图上分布。

这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

2基本思想直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直方图规定化及其实现

直方图规定化及其实现

■ MATLAB中的函数J=histeq(I,hgram)可以实现 直方图规定化,它来源于MATLAB图像处理工 具箱imagetoolbox
■ I代表待处理的图片
■ Hgram是由自己指定的矢量,规定将原始图 像I的直方图变换成hgram,hgram中的每个 元素都在[0,1]之间。
参考文献 张阳德,胡智渊,叶茂英,王吉伟,潘一峰,尹翔.扩大显微镜下细菌图片的灰度分布范围--基于MATLAB 直方图增强方法[J].《中国医学工程》,2006,14(3):228—233.
■ X=imread(‘ibm.bmp‘); %读取图片 ■ Y=rgb29ray(X); %将RGB图像转换为灰
度图像
■ L=127:255; %设置规定化函数量 ■ G=histeq(Y,L); %调用函数求直方图规
定化
■ N=imadjust(G,[0.867,1],[]);%调整 图像的灰度级范围
直方图规定
直方图增强
直方图均衡 直方图规定化
直方图规定化的定义
■ 直方图均衡实现了图像灰度的均衡分布,对 提高图像对比度、提升图像亮度具有明显的 作用。
■ 在实际应用中,有时并不需要图像的直方图 具有整体的均匀分布,而希望直方图与规定 要求的直方图一致,这就是直方图规定化。
■ 它可以人为地改变原始图像直方图的形状, 使其成为某个特定的形状,即增强特定灰度 级分布范围内的图间映射规则
逐次接近映射规则
直方图规定化的应用
——乳腺钼靶图像直方图增强
乳腺钼靶摄影是诊断乳腺疾病,特别是发现早期乳腺癌 的一种重要和有效的检查方法。
参考文献 昊杨韬,刘春,王娟,汤乐民.基于MATLAB的乳腺钼靶图像直方图增强方法的比较[J].《生物医学工程学进 展》,2009,30(2):90—93.

图像的直方图双向均衡化增强方法及程序

图像的直方图双向均衡化增强方法及程序

一、实验目的1、掌握图像直方图增强处理的原理;2、对肺部CT图像进行直方图均衡增强;二、实验原理图像增强是图像是为了改善视觉效果或便于人或机器对图像的分析理解,根据图像的特点、存在的问题或应用的目的等,所采取的改善图像质量的方法,或加强图像某些特征的措施。

本次实验所用的直方图增强目的是将灰度直方图的动态范围扩大,增加图像的对比度。

三、实验方法图像增强算法灵活多样,在直方图增强技术领域中,主要有两种方法:直方图均衡和直方图规定化。

本论文主要研究的算法是直方图均衡增强,在本次实验中使用两种均衡增强方法:均衡化和双向均衡化。

实验使用肺部CT图像作为原始图像,使用均衡化和双向均衡化方法对图像进行处理,增强图像的对比度,使图像的细节更加明显。

1.均衡化算法直方图均衡化又称直方图平坦化,是将已知灰度概率密度分布的图像经过变换,变成一幅具有均匀概率密度分布的新图像,扩展了每个像素取值的动态范围,从而达到增强图像整体对比度的效果。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像的像素值,使一定灰度范围内的像素数量大致相同,将图像变成灰度“均匀”分布的图像。

2.双向均衡化算法直方图双向均衡化是在直方图均衡化上延伸出来的一种均衡增强方法,双向指的是在直方图是灰度密度和灰度间距两个方向上进行均衡,所以双向均衡化比均衡化方法多了一个灰度间距均衡。

灰度间距均衡是把灰度等级在整个灰度范围内等距离排列,使处理后的图像没那么生硬。

3.实验结果分析肺部CT图像在增强处理之前,可以看到图像中的肺纹理对比度不高,纹理的细节不明显,仅仅是比较粗的肺动脉可以看得清楚,但是纹理的分叉部分的图像效果明显不高,与背景的差异不明显。

而通过直方图均衡增强处理,我们将原始图像各个像素点的灰度值经过变化之后均匀的分布在各个灰度级上,这样一来图像的对比度明显有了提高,肺纹理的细节更明显。

整个图像也显得更明亮,图像呈现出来的信息也更明显。

从结果图中可以看出,均衡化和双向均衡化的结果也存在一些差异。

直方图均衡化

直方图均衡化

1 直方图均衡化原理、目标、应用及编程实现1.1 直方图均衡化原理直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局的均衡化的直方图.实际工作中,有时需要变换直方图使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度,这时可采用比较灵活的直方图规定化方法.直方图规定化增强处理的步骤如下:令Pr (r )和Pz (z )分别为原始图像和期望图像的灰度概率密度函数。

如果对原始图像和期望图像均作直方图均衡化处理,应有⎰==x r dr r P r T S 0)()((1) ⎰==xz dzz p Z G V 0)()((2) )(1V G Z -= (3)由于都是进行均衡化处理,处理后的原图像概率密度函数Ps (S )及理想图像概率密度函数PV (V )是相等的。

于是,我们可以用变换后的原始图像灰度级S 代替(2)式中的V 。

即Z = G - 1(S ) (4)这时的灰度级Z 便是所希望的图像的灰度级。

此外,利用(1)与(3)式还可得到组合变换函数Z = G - 1[T (r )] (5) 对连续图像,重要的是给出逆变换解析式。

对离散图像而言,有n n Z P ii Z =)( (6)∑-===10)()(l i i z i i Z P Z G V (7))]([)(11i i i r T G S G Z --== (8)1.2直方图均衡化目标及应用这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。

通过这种方法,亮度可以更好地在直方图上分布。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称___图像处理与分析题目名称_直方图均衡化与规定化学院信息工程专业电子信息工程年级班别 0503 学号 ********** 学生姓名姚艺锋指导老师曹江中2008年6月16日《图像处理与分析》课程设计报告直方图均衡化与规定化1、设计方案(原理)一般情况下,如果图像的灰度分别集中在比较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使目标得到突出,达到图像增强的目的,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现.直方图的方法是以概率论为基础的.常用的方法有直方图均衡化和直方图规定化.(1) 直方图均衡化直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像.其结果是扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果.直方图均衡化的具体实现步骤如下:1).列出原始图像的灰度级1,,1,0,-=L j fj2).统计各灰度级的像素数目1,,1,0,-=L j n j3).计算原始图像直方图各灰度级的频数1,,1,0,/)(-==L j n nfP jjf4).计算累积分布函数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) 直方图规定化直方图均衡化的优点是能自动增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局的均衡化的直方图.实际工作中,有时需要变换直方图使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度,这时可采用比较灵活的直方图规定化方法.直方图规定化增强处理的步骤如下:令P r (r )和P z (z )分别为原始图像和期望图像的灰度概率密度函数。

如果对原始图像和期望图像均作直方图均衡化处理,应有⎰==xr drr P r T S 0)()( (1) ⎰==xz dzz p Z G V 0)()( (2))(1V G Z -= (3)由于都是进行均衡化处理,处理后的原图像概率密度函数Ps (S )及理想图像概率密度函数PV (V )是相等的。

于是,我们可以用变换后的原始图像灰度级S 代替(2)式中的V 。

即Z = G - 1(S ) (4) 这时的灰度级Z 便是所希望的图像的灰度级。

此外,利用(1)与(3)式还可得到组合变换函数 Z = G - 1[T (r )] (5) 对连续图像,重要的是给出逆变换解析式。

对离散图像而言,有n n Z P ii Z =)( (6)∑-===1)()(l i i z i i Z P Z G V (7) )]([)(11i i i r T G S G Z --== (8)2、设计内容(主要代码)%----------------------------选择图片路径及显示---------------------------% global f%选择图片路径[filename,pathname]= ... %...表示与下行连接uigetfile({'*.bmp';'*.jpg';'*gif';'*tif'},'选择图片'); %打开文件类型,对话框名称 f=imread([pathname filename]);axes(handles.axes1); %在axes1显示原图像imshow(f) ;title('原始图像');%------------------设置下拉菜单分别选择显示图像------------% global fva=get(handles.popupmenu1,'Value');val=get(hObject,'Value');switch val %用switch语句设置选项case 1 %原图像直方图I=double(f);[m,n]=size(I);H=zeros(1,256);for i=1:mfor j=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);for i=1:256 s(i)=H(i)/(m*n);for j=1:it(i)=t(i)+s(j);endendaxes(handles.axes2);plot(s);title('原图像直方图');case 2 %均衡化后图像及直方图I=double(f);[m,n]=size(I);H=zeros(1,256);for i=1:mfor j=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);for i=1:256 s(i)=H(i)/(m*n);for j=1:it(i)=t(i)+s(j);endendt1=round(t*(256-1)+0.5);H1=zeros(1,256);for i=1:256H1(t1(i))=H1(t1(i))+s(i);endaxes(handles.axes4);bar(H1);title('均衡化后直方图');I2=t1(I+1)-1;axes(handles.axes3);imshow(uint8(I2));title('均衡化后图像');case 3 %规定化后图像及直方图I=f;J=I;New=I;L=256; %灰度级Ps=zeros(L,1); % 存储原图像直方图概率数据nk=zeros(L,1); % 存储原图像直方图数据nk2=zeros(L,1); % 存储直方图规定化后的图像的直方图Rk=zeros(L,1); % 存储原图像累积直方图数据Ps2=zeros(L,1);Rk2=zeros(L,1);[row,col]=size(I); % 计算图像数据矩阵的行列数n=row*col; %总像素个数for i = 1:rowfor j = 1:colnum = double( I(i,j))+1; %获取像素灰度级nk(num) = nk(num)+1; %统计nkendend%计算直方图概率估计for i=1:LPs(i)=nk(i)/n;%计算累积直方图if i==1Rk(i)=Ps(i);else 1<=256Rk(i)=Rk(i-1)+Ps(i);end%规定化直方图Ps2Temp=[0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,9),0.05,zeros(1,39),0.05,zeros(1,19),0.05,zeros(1,19),0.05,zeros(1,19),ones(1,80).*0.0045,ones(1,16).*0.0088];Ps2=Ps2Temp';%计算规定化累积直方图for c=1:Lif c==1Rk2(c)=Ps2(c);elseRk2(c)=Rk2(c-1)+Ps2(c);endend%计算原图像与目标图像累计直方图数值的差的绝对值double ScMin=zeros(256,256);for Y=1:Lfor X=1:LScMin(X,Y)=abs(Rk(Y)'-Rk2(X)');endend%建立映射HisM=zeros(L:1);for P=1:Lmin = 0;minV=ScMin(1,P);for Q=1:Lif(minV>ScMin(Q,P))minV=ScMin(Q,P);min = Q;endendHisM(P)= min;end%将原图像的每个像素灰度转换为直方图均衡化后的灰度for x = 1:rowfor y = 1:colNum = double( I(x,y))+1;if Num==iNew(x,y)=HisM(i);endendendend%计算直方图规定化后的直方图for p = 1:rowfor q = 1:colNN = double( New(p,q))+1;nk2(NN) = nk2(NN)+1;endendaxes(handles.axes5);imshow(New),title('规定化后图像');axes(handles.axes6);plot(Ps2),title('规定化后直方图');end;%--------------------直接调用函数-----------------------------------------%global fva=get(handles.popupmenu2,'Value');val=get(hObject,'Value');switch valcase 1axes(handles.axes1); %在axes1显示图像imshow(f);title('原图像');axes(handles.axes2);h=imhist(f,256);plot(h)ylim('auto'); %自动设定Y轴坐标范围和刻度title('原始直方图')case 2j=histeq(f);axes(handles.axes3);imshow(j) ;title('均衡化图像');axes(handles.axes4);h=imhist(j,256);plot(h)ylim('auto');title('均衡化图像直方图')case 3hgram=50:2:250k=histeq(f,hgram);axes(handles.axes5);imshow(k) ;title('规定化图像');axes(handles.axes6);h=imhist(k,256);plot(h)ylim('auto');title('规定化图像直方图')end;3、实验结果GUI界面设计: 选择图片路径:直接调用函数均衡化和规定化:原图像与均衡化和规定化后对比:结果分析:通过直接调用函数和编程对图像进行处理的结果对比,可以看出实验结果和理论结果基本一致;在编程处理中,可以自定义对规定化中的直方图(Ps2Temp)进行修改,从而得到所希望的图像增强效果.4、心得体会通过这次课程设计,我学会如何利用MATLAB制作视图界面(GUI),并通过视图界面对数字图像进行处理,方便快捷,而且美观.在做设计的过程中,虽然遇到了不少问题,例如:程序结果如何通过GUI界面显示,程序的调试出错等,但是经过查资料并进行修改,及同学们的提点下,所有问题都一一得到解决;通过这次课程设计,揭开了数字图像的神秘面纱.5、参考文献(1). R.C Gonzalez,R.E.Woods.<<数字图像处理>>(第二版).北京:电子工业出版社,2007(2). 贺兴华. <<Matlab7.x 图像处理>> 人民邮电出版社,2006(3). 徐飞,施晓红. <<matlab应用图像处理>>.西安:西安电子科技大学出版社,2002。

相关文档
最新文档