直方图均衡化及规定化

合集下载

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

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

目录第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)。

图片直方图均衡化

图片直方图均衡化

图⽚直⽅图均衡化对于输⼊像素点r和输出像素点s都在灰度级 [0,L-1]之间,r = 0 代表⿊⾊, r = L - 1代表⽩⾊。

对于r和s的变换形式为:r和s满⾜⼀下条件:利⽤反函数来从s推r时,有以下定义:r和s满⾜条件:条件a是为了保证输出的灰度级不少于输⼊,这是为了防⽌⼆义性。

条件b是为了保证输出的灰度范围和输⼊的灰度范围相同。

条件a`也是为了保证s到r 也是⼀⼀对应的,防⽌⼆义性。

实验中采⽤8bit整性的像素分布,不⼀定满⾜这个情况。

在实验中会类似左边的图像,出现多个输⼊的r,输出同⼀个s值。

⽽在理论的约束上应该和右图相似,r与s⼀⼀对应。

对于⼀副灰度图像,和分别代表输⼊图像和输出图像的像素点的概率分布,我们简称为PDF。

对于已知的和满⾜公式:(1)直⽅图均衡化的采⽤的公式如下:(2)其中w是积分假变量,L-1是最⼤的灰度级。

为什么要这么做呢。

由莱布尼兹准则,我们知道上限的定积分的导数是被积函数在该上限的值。

(3)我们将的结果带⼊(1)中,(4)2 结论使⽤(2)公式后,输出图像的像素点s分布是均匀的,PDF为1/(L-1)。

3 离散直⽅图均衡化采⽤公式对于离散的直⽅图均衡化采⽤的公式为:(5)其中MN是总的像素点个数编码实现1 统计输⼊的灰度图像的像素信息void calHistInfo(const Mat& src, vector<unsigned int>& calVec, vector<unsigned int >& calVecBefor,unsigned int LMax){int width = src.cols;int height = src.rows;int piexl = 0;for (int h = 0; h < height; h++){for (int w = 0; w < width; w++) {piexl = (int)src.at<uchar>(h, w);calVec[round(piexl)] += 1;}}calVecBefor[0] = calVec[0];for (int i = 1; i < calVec.size(); i++){calVecBefor[i] = calVecBefor[i - 1] + calVec[i];}cout << "统计完毕" << endl;}这⾥我⽤了两个vector数组calVec 和calVecBefor ,calVec是⽤于记录每个灰度级别的像素个数,calVecBefor是记录在当前像素r个数和r之前的像素之和。

实验一图像的直方图均衡,数字图像的空间域滤波

实验一图像的直方图均衡,数字图像的空间域滤波

实验一、图像的直方图均衡一、实验目的1、理解直方图均衡的原理与作用;2、掌握统计图像直方图的方法;3掌握图像直方图均衡的方法。

二、实验原理在实际应用中,希望能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配,这就是直方图规定化的基本思想。

换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。

直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。

三、实验步骤1、利用matlab图像处理工具箱提供的函数进行均衡处理;程序如下:clcIM=imread('imag.jpg');figure,imshow(IM);imwrite(rgb2gray(IM),'Gray.bmp');%将彩色图片灰度化并保存figure,subplot(2,1,1),imshow('gray.bmp')IM=rgb2gray(IM); %转换为灰度图subplot(2,1,2),imhist(IM); %画出直方图figure,IM2=histeq(IM);%利用函数图像均值subplot(2,1,1),imshow(IM2); %显示均值后图片subplot(2,1,2),imhist(IM2); %显示处理后的直方图处理结果:原始图片:用系统函数均衡后结果:均值后:2、自己设计程序实现图像的直方图均衡;自己设计的均值代码:%读入图片:clcIM=imread('imag.jpg');figure,imshow(IM)imwrite(rgb2gray(IM),'Gray.bmp');%将彩色图片灰度化并保存figure,subplot(2,1,1),imshow('gray.bmp')IM=rgb2gray(IM); %灰度化后的数据存入数组%直方图均衡化S1=zeros(1,256);for i=1:256for j=1:iS1(i)=GP(j)+S1(i); %计算SkendendS2=round((S1*256)+0.5); %将Sk归到相近级的灰度for i=1:256GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率endfigure,subplot(2,1,1),bar(0:255,GPeq,'b') %显示均衡化后的直方图title('均衡化后的直方图')xlabel('灰度值')ylabel('出现概率')%四,图像均衡化PA=IM;for i=0:255PA(find(IM==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素endsubplot(2,1,2),imshow(PA) %显示均衡化后的图像title('均衡化后图像')imwrite(PA,'PA.bmp');3、画出均衡后的图像直方图;处理后4、比较上述两种处理方法的不同。

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

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

程序课程设计报告2012年 7 月 9 日图像增强专业:*****班级:*****题目:图像增强小组成员: ***指导教师:***时间:2012年6月-7月摘要:图像增强是图像处理的一个重要分支, 它对图像整体或局部特征能有效地改善;直方图是图像处理中最重要的基本概念之一,它能有效地用于图像增强。

本文主要探讨了直方图的理论基础,直方图均衡化的概念及理论,同时用MATLAB语言加以实现, 给出标准的数字图像在各种处理前与处理后的对照图像及直方图。

实验结果表明, 用直方图均衡化的算法, 能有效改善灰度图像的对比度差和灰度动态范围,使处理后的图像视觉效果得以改善。

关键词:图像增强直方图均衡化Abstract: Image enhancement is an important branch of image processing, its image as a whole or partial characteristics can effectively improve. Histogram is one of the most important basic concepts of image processing, it can effectively be used for image enhancement. This paper mainly discusses the theoretical basis of the histogram, histogram equalization, the concepts and theories. We use the MATLAB language and give the standard digital images in various treatment and processing of the control image and histogram. The experimental results show that the histogram equalization algorithm can effectively improve the poor contrast and gray scale dynamic range of the grayscale image, the visual effects of the processed image can be improved. Keywords: Image enhancement Histogram Equalization1 引言图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。

直方图均衡化算法-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.再对规定的直方图均衡化,得到
就给出了一个函数图形,称为直方图。
直方图未规范化 规范化直方图均衡化均衡化的原因: 大多数自然图像,其灰度分布集中在较窄的区间,引起 图像细节不够清晰,采用直方图修正后可使图像的灰度间距 拉开或使灰度分布均匀,从而增大反差,使图像细节清晰,
达到增强的目的。
直方图均衡化
直方图均衡化处理的“中心思想”: 把原始图像的灰度直方图从比较集中的某个灰度区间
变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配

直方图均衡化

直方图均衡化

图像的灰度直方图是一个1-D的离散函数
h h ((ff)) n nf f ff 0, 0, 1, 1, ,, L L 1 1
灰度累积直方图也是一个1-D的离散函数
c( f ) n i
i 0 f
f 0, 1,
, L 1
直方图均衡化
直方图均衡化主要用于增强动态范围偏小的图像 的反差。
直方图均衡化
原始图像各灰度级对应的概率分布

灰度级
0
1
2
3
4
5
6
7
像素
概率
790
1023 850
656
329
245
122
0.03
81
0.02
0.19 0.25
0.21 0.16
0.08 0.06
18
直方图均衡化
图像直方图均衡化过程如下:
(1)得到变换后的值:
例解:
t 0 T ( s0 ) t1 T (s1 )
我们注意到在暗色的图像中,直 方图的组成成分集中在灰度级低 (暗)的一侧;反之,明亮的图 像的直方图的组成成分则集中在 灰度级高(亮)的一侧;动态范 围小,也就是对比度小,这种图 像直方图集中于灰度级的中部; 动态范围正常的图像直方图的成 分覆盖了灰度级很宽的范围。 直观上,若一图像像素占有全部 可能的灰度级并且分布均匀,则 图像有高的对比度和多变的灰度 色调,即,可通过改变直方图的 形状来达到增强图像对比度。
nk Pr ( rk ) 0 rk 1 n k 0, 1, 2 , , l 1
式中,nk为图像中出现rk 这种灰度的像素数,n 是 图像中像素总数,而 n k 就是概率论中所说的频数。 n 在直角坐标系中作出 rk 与Pr(rk) 的关系图形,这个图 形称为直方图。

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

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

《数字图像处理》实验报告(二)学号:____________ 姓名:__________ 专业:____ 课序号:__________计算机科学与技术学院实验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.

直方图处理(均衡化与匹配)解析

直方图处理(均衡化与匹配)解析

0.11
直方图均衡化结果
pr(rk)
0.25 0.20 0.15 0.10 0.05 0
1 7 2 7 3 7
4 7
Sk
0.25 0.21 0.19 0.16 0.08 0.06 0.03
6 7
1.00 0.80 0.60 0.40 0.02
1
0.89 0.81 0.95 0.98 0.65 0.44
(3) 计算原始直方图各概率:pk=nk/N; (4) 计算累计直方图:sk=Σpk; (5) 取整Sk=int{(L-1)sk+0.5}; (6) 确定映射对应关系:rksk;
(7) 统计新直方图各灰度级像素nk';
(8) 用pk (sk) =nk'/N计算新直方图。
其中L是灰度层次数, N是图幅总像素数。
c) 作图
建立直角坐标系,横轴表示rk 的取值,纵轴表示pr (rk )的取值, 作pr (rk )的函数图
练习:试求如图所 示一幅10×10, 8级灰度图像的灰 度直方图。
a)将图像的灰度级归一化
0 1 1 2
0 1 1 2
0 1 1 2
0 1 1 2
0 1 1 2
0 1 1 2
0 1 1 2
0 1 1 2
直方图均衡化的优点是能自动地增强整个图像 的对比度,但它的具体增强效果不易控制,处理 的结果总是得到全局均衡化的直方图。实际中有 时需要变换直方图使之成为某个特定的形状,从 而有选择地增强某个灰度值范围内的对比度。
s=T(r) Pr(r) Pz(z) s=T(r) v=G(z) z=G-1[T(r)]
z
两者经直方图均衡化处理后应有相同的直方图,因此 规定化后的的图像灰度级为:

直方图均衡化

直方图均衡化

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)。

变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配
图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化
设原始在灰度直方图均衡化处理中可表述为将在(x,y)处的 灰度r映射为s,对图像的映射函数可定义为:s=T(r), 0≤r≤L-1 ,这个映射函数必须满足两个条件(其中L为图像 的灰度级数):
• (1) s=T(r)在0≤r≤L-1范围内是一个单调递增函数。
• (2)对于0≤r≤L-1有0≤s≤L-1。
直方图均衡化
直方图均衡化的步骤:
(1) 对给定的待处理图像统计其直方图,求出 Pr (rk ) nk / N
(2) 根据统计出的直方图采用累积分布函数作变换,
S k T (rk ) (L-1) Pr (rj )
j 0 k
求变换后的新灰度; (3) 用新灰度代替旧灰度,这一步是近似过程,应根据处理 目的尽量做到合理,同时把灰度值相等或近似地合并到一 起。
长江大学电子信息学院
直方图均衡化
表 64×64大小的图像灰度级分布
例:假定有一幅像 素数为64×64,灰 度级为8级的图像, 将其进行均衡化处 理,其灰度级分布 表如右图所示:
直方图
2014年3月13日
直方图
直方图的定义:
图象的灰度统计称为直方图。假设图象有n个象素,灰度 等级有k = 0,1,…,L-1个。sk为第k个等级的象素的灰度,设 该象素在图象中共有nk个,那么该象素出现的频率是
ps ( sk ) nk / n
k 0,1,..., L 1.
为了规范化,把sk限制在0到1内。当k跑遍0,1,…,L-1时,
直方图规定化
原图 均衡化的图像
直方图规定化
例如:Pr (r)为原图像的灰度密度函数, Pz (z)为希 望得到的增强图像的灰度密度函数,二者的直方图 如下:
直方图规定化
直方图规定化基本步骤:
1.先对原图做直方图均衡化,得到
s T (r ) ( L 1) p(t )dt
0 r
2.再对规定的直方图均衡化,得到
s G( z ) ( L 1) q(t )dt
0 z
3.由于它们的直方图均衡化图像理论上是一样的,即:
G( z ) s T (r ), z G 1[T (r )] G 1[s]
于是就得到了根据指定直方图来变换图像的直方图匹配变换。
直方图规定化
直方图规定化
就给出了一个函数图形,称为直方图。
直方图
未规范化 规范化
直方图均衡化
均衡化的原因: 大多数自然图像,其灰度分布集中在较窄的区间,引起 图像细节不够清晰,采用直方图修正后可使图像的灰度间距 拉开或使灰度分布均匀,从而增大反差,使图像细节清晰,
达到增强的目的。
直方图均衡化
直方图均衡化处理的“中心思想”: 把原始图像的灰度直方图从比较集中的某个灰度区间
直方图均衡化
直方图均衡化示意图
图(a) 原图灰度级直方图;图(b) 累积变换后的直方图; 图(c) 均衡化后的直方图;
直方图均衡化
直方图均衡化
直方图规定化
直方图规定化的原因: 在实际应用中,希望能够有目的地增强某 个灰度区间的图像, 即能够人为地修正直 方图的形状, 使之与期望的形状相匹配, 这就是直方图规定化的基本思想。
相关文档
最新文档