灰度直方图均衡化与规定化

ID:23631638

大小:327.01 KB

页数:11页

时间:2018-11-09

上传者:U-25932
灰度直方图均衡化与规定化_第1页
灰度直方图均衡化与规定化_第2页
灰度直方图均衡化与规定化_第3页
灰度直方图均衡化与规定化_第4页
灰度直方图均衡化与规定化_第5页
资源描述:

《灰度直方图均衡化与规定化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

沈阳理工大学数字图像处理课程设计报告一、课程设计目的(1)进一步掌握matlab的用法;(2)在实践中深入理解图像显示的方法;(3)学会用matlab对图像进行显示。二、课程设计要求(1)根据题目,查阅有关资料,掌握图像显示技术;(2)学习MATLAB软件,掌握MATLAB各种函数的使用;(3)根据图像显示原理,运用MATLAB进行编程,仿真调制过程,记录并分析仿真结果;(4)形成设计报告。三、设计方案一般情况下,如果图像的灰度分别集中在比较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使目标得到突出,达到图像增强的目的,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现.直方图的方法是以概率论为基础的.常用的方法有直方图均衡化和直方图规定化.(1)直方图均衡化直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像.其结果是扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果.直方图均衡化的具体实现步骤如下:1).列出原始图像的灰度级2).统计各灰度级的像素数目3).计算原始图像直方图各灰度级的频数4).计算累积分布函数11 沈阳理工大学数字图像处理课程设计报告5).应用以下公式计算映射后的输出图像的灰度级,P为输出图像灰度级的个数,其中INT为取整符号6).统计映射后各灰度级的像素数目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)分别为原始图像和期望图像的灰度概率密度函数。如果对原始图像和期望图像均作直方图均衡化处理,应有(1)(2)(3)由于都是进行均衡化处理,处理后的原图像概率密度函数Ps(S)及理想图像概率密度函数PV(V)是相等的。于是,我们可以用变换后的原始图像灰度级S代替(2)式中的V。即Z=G-1(S)(4)这时的灰度级Z便是所希望的图像的灰度级。此外,利用(1)与(3)式还可得到组合变换函数11 沈阳理工大学数字图像处理课程设计报告Z=G-1[T(r)](5)对连续图像,重要的是给出逆变换解析式。对离散图像而言,有(6)(7)(8)四、设计内容%----------------------------选择图片路径及显示---------------------------%globalf%选择图片路径[filename,pathname]=...%...表示与下行连接uigetfile({'*.bmp';'*.jpg';'*gif';'*tif'},'选择图片');%打开文件类型,对话框名称f=imread([pathnamefilename]);axes(handles.axes1);%在axes1显示原图像imshow(f);title('原始图像');%------------------设置下拉菜单分别选择显示图像------------%globalfva=get(handles.popupmenu1,'Value');val=get(hObject,'Value');switchval%用switch语句设置选项case1%原图像直方图I=double(f);[m,n]=size(I);H=zeros(1,256);fori=1:mforj=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);fori=1:256s(i)=H(i)/(m*n);forj=1:it(i)=t(i)+s(j);endendaxes(handles.axes2);11 沈阳理工大学数字图像处理课程设计报告plot(s);title('原图像直方图');case2%均衡化后图像及直方图I=double(f);[m,n]=size(I);H=zeros(1,256);fori=1:mforj=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);fori=1:256s(i)=H(i)/(m*n);forj=1:it(i)=t(i)+s(j);endendt1=round(t*(256-1)+0.5);H1=zeros(1,256);fori=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('均衡化后图像');case3%规定化后图像及直方图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;%总像素个数fori=1:rowforj=1:colnum=double(I(i,j))+1;%获取像素灰度级11 沈阳理工大学数字图像处理课程设计报告nk(num)=nk(num)+1;%统计nkendend%计算直方图概率估计fori=1:LPs(i)=nk(i)/n;%计算累积直方图ifi==1Rk(i)=Ps(i);else1<=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';%计算规定化累积直方图forc=1:Lifc==1Rk2(c)=Ps2(c);elseRk2(c)=Rk2(c-1)+Ps2(c);endend%计算原图像与目标图像累计直方图数值的差的绝对值doubleScMin=zeros(256,256);forY=1:LforX=1:LScMin(X,Y)=abs(Rk(Y)'-Rk2(X)');endend%建立映射HisM=zeros(L:1);forP=1:Lmin=0;minV=ScMin(1,P);forQ=1:Lif(minV>ScMin(Q,P))minV=ScMin(Q,P);min=Q;endendHisM(P)=min;11 沈阳理工大学数字图像处理课程设计报告end%将原图像的每个像素灰度转换为直方图均衡化后的灰度forx=1:rowfory=1:colNum=double(I(x,y))+1;ifNum==iNew(x,y)=HisM(i);endendendend%计算直方图规定化后的直方图forp=1:rowforq=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;%--------------------直接调用函数-----------------------------------------%globalfva=get(handles.popupmenu2,'Value');val=get(hObject,'Value');switchvalcase1axes(handles.axes1);%在axes1显示图像imshow(f);title('原图像');axes(handles.axes2);h=imhist(f,256);plot(h)ylim('auto');%自动设定Y轴坐标范围和刻度title('原始直方图')case2j=histeq(f);axes(handles.axes3);imshow(j);title('均衡化图像');axes(handles.axes4);11 沈阳理工大学数字图像处理课程设计报告h=imhist(j,256);plot(h)ylim('auto');title('均衡化图像直方图')case3hgram=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;五、实验结果GUI界面设计:11 沈阳理工大学数字图像处理课程设计报告选择图片路径:11 沈阳理工大学数字图像处理课程设计报告直接调用函数均衡化和规定化:11 沈阳理工大学数字图像处理课程设计报告原图像与均衡化和规定化后对比:11 沈阳理工大学数字图像处理课程设计报告六、结果分析通过直接调用函数和编程对图像进行处理的结果对比,可以看出实验结果和理论结果基本一致;在编程处理中,可以自定义对规定化中的直方图(Ps2Temp)进行修改,从而得到所希望的图像增强效果.七、总结分析一周的数字图像处理课程设计,最大的收获是初步的掌握的Matlab软件的使用,通过这次课程设计,我学会如何利用MATLAB制作视图界面(GUI),并通过视图界面对数字图像进行处理,方便快捷,而且美观。在实践过程中,基本上是在已有的基础上自学而完成的,所以对自己的自学能力的提高也起到了一定的作用。并且在此次实习过程中,充分利用了图书馆,及其网络资源,才能够成功完成任务,让我意识到充分利用身边资源的重要性。本次数字图像处理课程设计不仅加强了对课本知识的了解,而且大大增强了我们课外自学和动手能力,让我受益良多。八、参考文献张汗灵编著MATLAB在图像处理中的应用/北京:清华大学出版社,2008王家文MATLAB6.5图形图像处理国防工业出版社王晓丹,吴崇明编著基于MATLAB的系统分析与设计[5]图像处理西安电子科技大学出版社2000余成波编著数字图像处理及MATLAB实现重庆大学出版社2003杨枝灵,王开等编著VisualC++数字图像获取处理及实践应用人民邮电出版社2003苏彦华等编著VisualC++数字图像识别技术典型案例人民邮电出版社200411

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《灰度直方图均衡化与规定化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

沈阳理工大学数字图像处理课程设计报告一、课程设计目的(1)进一步掌握matlab的用法;(2)在实践中深入理解图像显示的方法;(3)学会用matlab对图像进行显示。二、课程设计要求(1)根据题目,查阅有关资料,掌握图像显示技术;(2)学习MATLAB软件,掌握MATLAB各种函数的使用;(3)根据图像显示原理,运用MATLAB进行编程,仿真调制过程,记录并分析仿真结果;(4)形成设计报告。三、设计方案一般情况下,如果图像的灰度分别集中在比较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使目标得到突出,达到图像增强的目的,可通过改善各部分亮度的比例关系,即通过直方图的方法来实现.直方图的方法是以概率论为基础的.常用的方法有直方图均衡化和直方图规定化.(1)直方图均衡化直方图均衡化又称直方图平坦化,是将一已知灰度概率密度分布的图像经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像.其结果是扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果.直方图均衡化的具体实现步骤如下:1).列出原始图像的灰度级2).统计各灰度级的像素数目3).计算原始图像直方图各灰度级的频数4).计算累积分布函数11 沈阳理工大学数字图像处理课程设计报告5).应用以下公式计算映射后的输出图像的灰度级,P为输出图像灰度级的个数,其中INT为取整符号6).统计映射后各灰度级的像素数目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)分别为原始图像和期望图像的灰度概率密度函数。如果对原始图像和期望图像均作直方图均衡化处理,应有(1)(2)(3)由于都是进行均衡化处理,处理后的原图像概率密度函数Ps(S)及理想图像概率密度函数PV(V)是相等的。于是,我们可以用变换后的原始图像灰度级S代替(2)式中的V。即Z=G-1(S)(4)这时的灰度级Z便是所希望的图像的灰度级。此外,利用(1)与(3)式还可得到组合变换函数11 沈阳理工大学数字图像处理课程设计报告Z=G-1[T(r)](5)对连续图像,重要的是给出逆变换解析式。对离散图像而言,有(6)(7)(8)四、设计内容%----------------------------选择图片路径及显示---------------------------%globalf%选择图片路径[filename,pathname]=...%...表示与下行连接uigetfile({'*.bmp';'*.jpg';'*gif';'*tif'},'选择图片');%打开文件类型,对话框名称f=imread([pathnamefilename]);axes(handles.axes1);%在axes1显示原图像imshow(f);title('原始图像');%------------------设置下拉菜单分别选择显示图像------------%globalfva=get(handles.popupmenu1,'Value');val=get(hObject,'Value');switchval%用switch语句设置选项case1%原图像直方图I=double(f);[m,n]=size(I);H=zeros(1,256);fori=1:mforj=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);fori=1:256s(i)=H(i)/(m*n);forj=1:it(i)=t(i)+s(j);endendaxes(handles.axes2);11 沈阳理工大学数字图像处理课程设计报告plot(s);title('原图像直方图');case2%均衡化后图像及直方图I=double(f);[m,n]=size(I);H=zeros(1,256);fori=1:mforj=1:nH(I(i,j)+1)=H(I(i,j)+1)+1;endends=zeros(1,256);t=zeros(1,256);fori=1:256s(i)=H(i)/(m*n);forj=1:it(i)=t(i)+s(j);endendt1=round(t*(256-1)+0.5);H1=zeros(1,256);fori=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('均衡化后图像');case3%规定化后图像及直方图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;%总像素个数fori=1:rowforj=1:colnum=double(I(i,j))+1;%获取像素灰度级11 沈阳理工大学数字图像处理课程设计报告nk(num)=nk(num)+1;%统计nkendend%计算直方图概率估计fori=1:LPs(i)=nk(i)/n;%计算累积直方图ifi==1Rk(i)=Ps(i);else1<=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';%计算规定化累积直方图forc=1:Lifc==1Rk2(c)=Ps2(c);elseRk2(c)=Rk2(c-1)+Ps2(c);endend%计算原图像与目标图像累计直方图数值的差的绝对值doubleScMin=zeros(256,256);forY=1:LforX=1:LScMin(X,Y)=abs(Rk(Y)'-Rk2(X)');endend%建立映射HisM=zeros(L:1);forP=1:Lmin=0;minV=ScMin(1,P);forQ=1:Lif(minV>ScMin(Q,P))minV=ScMin(Q,P);min=Q;endendHisM(P)=min;11 沈阳理工大学数字图像处理课程设计报告end%将原图像的每个像素灰度转换为直方图均衡化后的灰度forx=1:rowfory=1:colNum=double(I(x,y))+1;ifNum==iNew(x,y)=HisM(i);endendendend%计算直方图规定化后的直方图forp=1:rowforq=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;%--------------------直接调用函数-----------------------------------------%globalfva=get(handles.popupmenu2,'Value');val=get(hObject,'Value');switchvalcase1axes(handles.axes1);%在axes1显示图像imshow(f);title('原图像');axes(handles.axes2);h=imhist(f,256);plot(h)ylim('auto');%自动设定Y轴坐标范围和刻度title('原始直方图')case2j=histeq(f);axes(handles.axes3);imshow(j);title('均衡化图像');axes(handles.axes4);11 沈阳理工大学数字图像处理课程设计报告h=imhist(j,256);plot(h)ylim('auto');title('均衡化图像直方图')case3hgram=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;五、实验结果GUI界面设计:11 沈阳理工大学数字图像处理课程设计报告选择图片路径:11 沈阳理工大学数字图像处理课程设计报告直接调用函数均衡化和规定化:11 沈阳理工大学数字图像处理课程设计报告原图像与均衡化和规定化后对比:11 沈阳理工大学数字图像处理课程设计报告六、结果分析通过直接调用函数和编程对图像进行处理的结果对比,可以看出实验结果和理论结果基本一致;在编程处理中,可以自定义对规定化中的直方图(Ps2Temp)进行修改,从而得到所希望的图像增强效果.七、总结分析一周的数字图像处理课程设计,最大的收获是初步的掌握的Matlab软件的使用,通过这次课程设计,我学会如何利用MATLAB制作视图界面(GUI),并通过视图界面对数字图像进行处理,方便快捷,而且美观。在实践过程中,基本上是在已有的基础上自学而完成的,所以对自己的自学能力的提高也起到了一定的作用。并且在此次实习过程中,充分利用了图书馆,及其网络资源,才能够成功完成任务,让我意识到充分利用身边资源的重要性。本次数字图像处理课程设计不仅加强了对课本知识的了解,而且大大增强了我们课外自学和动手能力,让我受益良多。八、参考文献张汗灵编著MATLAB在图像处理中的应用/北京:清华大学出版社,2008王家文MATLAB6.5图形图像处理国防工业出版社王晓丹,吴崇明编著基于MATLAB的系统分析与设计[5]图像处理西安电子科技大学出版社2000余成波编著数字图像处理及MATLAB实现重庆大学出版社2003杨枝灵,王开等编著VisualC++数字图像获取处理及实践应用人民邮电出版社2003苏彦华等编著VisualC++数字图像识别技术典型案例人民邮电出版社200411

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭
关闭