您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 图像增强的GUI设计
图像处理课程实践论文题目:图像增强功能组件的GUI设计院(系)信息科学与工程学院专业通信工程届别班级学号姓名指导老师目录一、空域增强……………………………………………………………11.1直方图均衡化…………………………………………………11.2平滑滤波………………………………………………………21.3锐化滤波………………………………………………………41.4自适应滤波……………………………………………………5二、频域增强……………………………………………………………62.1低通滤波………………………………………………………62.2高通滤波………………………………………………………7三、其他增强方法………………………………………………………93.1灰度变换………………………………………………………93.2椒盐噪声加入…………………………………………………93.3图像镜像………………………………………………………103.4图像求反………………………………………………………103.5边缘检测………………………………………………………113.6图像旋转………………………………………………………113.7打开保存撤销退出初始化………………………………12四、GUI界面的使用说明………………………………………………144.1简介……………………………………………………………144.2具体操作………………………………………………………14五、功能组件测试报告………………………………………………15六、参考文献……………………………………………………………16七、附录…………………………………………………………………171一、空域增强1.1直方图均衡化1.1.1知识点直方图均衡是指将一个已知灰度分布的图像经过一种变换,使之变成一幅具有均匀灰度分布的新图像。把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围,从而达到增强图像整体对比度的效果直方图均衡化的增强函数需要满足两个条件:1)EH(s)在0≤s≤L-1范围内是一个单值单增函数;2)对应0≤s≤L-1有0≤EH(s)≤L-1。上面第一个条件保证原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列次序。第二个条件保证变换前后灰度值动态范围的一致性。1.1.2程序设计思路通过histeq(X)函数实现直方图均衡。因为此函数只能对灰度图像进行直方图均衡。故应先将彩图转为灰度图像。直方图均衡实现程序段如下:globalTaxes(handles.axes2);T=getimage;k=histeq(handles.k);imshow(k);title('经过直方图均衡后的图像');handles.k=k;guidata(hObject,handles);1.1.3结果与分析说明1、结果①将彩图转为灰度图像:图12②在上一步的基础上对第二幅图进行直方图均衡:图22、分析和说明图1和图2的右侧图分别是左侧图的灰度变换图和经过直方图均衡化后的图像。由于直方图均衡化增加了图像灰度动态范围,所以也增加了图像的对比度,反映在图像上就是图像有较大的反差,许多细节可以看到比较清晰了。1.2平滑滤波1.2.1知识点最简单的平滑滤波是用一个像素领域的平均值作为滤波结果,此时滤波模板的所有系数都取为1。为了保证输出图仍在原来的灰度值范围,在算得卷积值R后要将其除以系数总个数在进行赋值。例如对3X3的模板来说,在算得R后要将其除以系数9。领域平均的一般表达式为),(),(2),(1),(yxNtstsfnyxg其中,N(x,y)对应f(x,y)中(x,y)的n×n领域,与模板W所覆盖的范围对应。1.2.2程序设计思路conv函数可计算起点为k=0的两个序列的卷积。利用此函数和卷积的性质,编写平滑滤波器的程序对图像进行领域平均平滑滤波。平滑滤波实现的程序段如下:globalTaxes(handles.axes2);T=getimage;h=[111;111;111];H=h/9;i=double(handles.k);k=convn(i,h);imshow(k,[]);3title('经过线性平滑后的图像');handles.k=k;guidata(hObject,handles);1.2.3结果与分析说明1、结果①将彩图转为灰度图像:图3②在上一步的基础上对第二幅图叠加参数为0.05的椒盐噪声:图4③对图4中的灰度图像进行多次的平滑滤波图52、分析说明图5依次为用3x3,5×5,7×7,9×9平滑模板对图4中的灰度图像进行平滑滤波的结果。有图可见,当所用平滑模板尺寸增大时,对噪声的消除效果有所增强。不过同时所得到的图像变得更为模糊,可视的细节逐渐减小。41.3锐化滤波1.3.1知识点图像锐化的目的是加强图像中景物的边缘和轮廓。因为边缘和轮廓都位于灰度突变的地方,所以锐化算法的实现基于微分运算。拉普拉斯算子是各向同性的阶微分算子。数字图像f(x,y)的二阶偏导数可表示为:22222yfxff)1,()1,(),(2),1(),1(),(22222yxfyxfyxfyfyxfyxfyxfxf拉普拉斯算子可增强图像中的灰度不连续边缘,减弱灰度值缓慢变化区域的对比度,将结果叠加到原始图像上,就可以得到边缘增强后的图像。1.3.2程序设计思路fspecial函数用于建立预定义的滤波算子,k=fspecial(type,para)其中type指定算子的类型,para指定相应的参数。故利用该函数进行锐化滤波的程序编写。锐化滤波实现的程序段如下:globalTaxes(handles.axes2);T=getimage;K=fspecial('laplacian',0.7);k=filter2(K,T)/100;imshow(k);title('经过线性锐化后的图像');handles.k=k;guidata(hObject,handles);1.3.3结果与分析说明1、结果对灰度图像经过锐化滤波后:2、分析说明通过对左右图的比较,可以看出经过锐化之后的图像,其中景物的边缘和轮廓更加的清晰。故锐化滤波器可以用于景物边缘的检测和提取。51.4自适应滤波1.4.1知识点自适应滤波法是能够在一定程度上根据环境的改变,使用自适应算法来改变滤波器的参数和结构的滤波法。1.4.2程序设计思路wiener函数用于建立预定义的滤波算子,k=wiener2(I,[mn],noise)其中I是处理的数据,用[m,n]指定相应的参数。故利用该函数进行自适应滤波的程序编写。自适应滤波实现的程序段如下:globalTaxes(handles.axes2);T=getimage;k=wiener2(handles.k,[5,5]);imshow(k);title('经过自适应滤波后的图像');handles.k=k;guidata(hObject,handles);1.3.3结果经过一次自适应滤波后6二、频域增强2.1低通滤波2.2.1知识点物理上可以实现的一种低通滤波器是巴特沃斯低通滤波器。一个阶为n,截断频率为0D的巴特沃斯高通滤波器的转移函数为nvuDDvuH20)],(/[11),(低通巴特沃斯滤波器在高低频率间的过渡比较光滑,所以用巴特沃斯低通滤波器得到的输出图其振铃现象不明显。具体来说,阶为1时没有振铃现象,而随着阶的增加振铃现象也增加。一般情况下,常取使H最大值降到某个百分比的频率为截断频率。当D(u,v)=0D时,H(u,v)=0.5。2.1.2程序设计思路通过对离散傅立叶变换的学习,我们知道一个有限长序列可以用N个频域抽样值唯一的确定,即其中H(k)是h(n)的离散傅立叶变换,是H(z)在单位圆上的均匀抽样值,其列长N,即直接从频域出发,对理想频响进行抽样,然后,用离散傅立叶反变换求单位脉冲响应再用Z变换求系统函数。低通滤波实现的程序段如下:axes(handles.axes2);k1=handles.k;f=double(k1);%数据类型转换,matlab不支持图像的无符号整型的计算g=fft2(f);%傅里叶变换g=fftshift(g);%转换数据矩阵[M,N]=size(g);nn=2;%二阶巴特沃斯低通滤波器d0=50;%截止频率50m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数result(i,j)=h*g(i,j);endendresult=ifftshift(result);7k2=ifft2(result);k=uint8(real(k2));imshow(k);%显示处理后的图像title('经过低通滤波后的图像');handles.k=k;guidata(hObject,handles);2.1.3结果与分析说明2、结果①将彩图转为灰度图像:图8图9图10②在上一步的基础上对第二幅图叠加椒盐噪声得到图9:③对灰度图像经过低通滤波之后得到如图10:2、分析说明由图9的加噪图像可以看出该图有比较明显的噪声存在,严重影响美观。经过低通滤波进行平滑之后的灰度图像可以消除一些噪声,产生的振铃效果也较少,但所得到的图像变的更为模糊。2.2高通滤波2.2.1知识点一个阶为n,截断频率为0D的巴特沃斯高通滤波器的转移函数为nvuDDvuH20)],(/[11),(与巴特沃斯低通滤波器类似,高通的巴特沃斯滤波器在通过和滤掉的频率之间也没有不连续的分界。由于在高低频率间的过渡比较光滑,所以用巴特沃斯高通滤波器得到的输出图其振铃现象不明显。82.2.2程序设计思路与低通滤波器相似,低通滤波器的程序段如下:axes(handles.axes2);x=(handles.k);f=double(x);%数据类型转换k1=fft2(f);%傅里叶变换g=fftshift(k1);%转换数据矩阵[M,N]=size(g);nn=2;d0=25;%截止频率25m=fix(M/2);n=fix(N/2);fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);%计算高通滤波器传递函数ifd=d0h=0;elseh=1;endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);k2=ifft2(result);k=uint8(real(k2));imshow(k);%显示滤波处理后的图像title('经过高通滤波后的图像');handles.k=k;guidata(hObject,handles);2.2.3结果与分析说明1、结果①将彩图转为灰度图像:②经过高通滤波之后:图11图1292、分析说明由图12可以看出经过高通滤波之后其对应的图像的各区域的边界得到了较为明显的增强,但因为高通处理之后的低频分量大都被滤波,所以原来比较平滑区域内部的灰度动态范围被压缩,整幅图比较昏暗,显示效果并不好。三、其他操作3.1灰度变换可利用rgb2gray(X)函数对其他图像进行灰度图像的转化。实现灰度变换的程序段如下:globalTaxes(handles.axes2);T=getimage;k=rgb2gray(handles.k);imshow(k);title('灰度变换后的图像');handles.k=k;guidata(hObject,handles);3.2椒盐噪声通过imnoise(I,type,parameters)来加入各种噪声。实现加入椒盐噪声的程序段如下:globalTaxes(handles.axes2);T=getimage;prompt={'设置椒盐噪声参数:'};defans={'0.05'};p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});k=imnoise(h
本文标题:图像增强的GUI设计
链接地址:https://www.777doc.com/doc-5857133 .html