图形图像论文1Word下载.docx
《图形图像论文1Word下载.docx》由会员分享,可在线阅读,更多相关《图形图像论文1Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
![图形图像论文1Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/31/2e6229f5-1405-4801-b664-f3aa364bc4fc/2e6229f5-1405-4801-b664-f3aa364bc4fc1.gif)
文章介绍了图象退化的原因,几种常用的图像滤波复原技术,以及用MATLAB实现图像复原的方法。
本文主要介绍了基于MATLAB的图形用户界面(GUI)来制作图像处理软件平台的具体过程和相关技巧,文章主要从几个方面展开论述:
第一,简单介绍下GUI与GUIDE;
第二,介绍以下GUIDE的模板及其操作方法;
第三,详细阐述一下图像处理软件平台的制作方法。
本文的GUI例子所制作的图像处理软件可以实现的功能是图像复原以及加噪声。
关键词:
退化模型;
噪声干扰;
图像滤波;
图像复原
二、、图像复原的概念
1.1图像复原的定义
所谓图像复原,是指去除或减轻在获取数字图像过程中发生的图像质量下降(退化)这些退化包括由光学系统、运动等等造成图像的模糊,以及源自电路和光度学因素的噪声。
图像复原的目标是对退化的图像进行处理,使它趋向于复原成没有退化的理想图像。
成像过程的每一个环节(透镜,感光片,数字化等等)都会引起退化。
在进行图像复原时,既可以用连续数学,也可以用离散数学进行处理。
其次,处理既可在空间域,也可在频域进行。
1.2图象恢复与图象增强的异同
相同点:
改进输入图像的视觉质量。
不同点:
图象增强目的是取得较好的视觉结果(不考虑退化原因);
图象恢复根据相应的退化模型和知识重建或恢复原始的图像(考虑退化原因)。
1.3图象退化的原因
图象退化指由场景得到的图像没能完全地反映场景的真实内容,产生了
失真等问题。
其原因是多方面的。
如:
透镜象差/色差
聚焦不准(失焦,限制了图像锐度)
模糊(限制频谱宽度)
噪声(是一个统计过程)
抖动(机械、电子)
二、退化模型
2.1图象退化模型概述
图像复原处理的关键问题在于建立退化模型。
在用数学方法描述图像时,它的最普遍的数学表达式为
这样一个表达式可以代表一幅活动的、彩色的立体图像。
当研究的是静止的、单色的、平面的图像时,则其数学表达式就简化为
基于这样的数学表达式,可建立如图2.1所示的退化模型。
由图2.2的模型可见,一幅纯净的图像
是由于通过了一个系统H及加性噪声
而使其退化为一幅图像
的。
图2.1图像退化模型
图像复原可以看成是一个估计过程。
如果已经给出了退化图像
并估计出系统参数H,从而可近似地恢复
。
这里,
是一种统计性质的噪声信息。
当然,为了对处理结果做出某种最佳的估计,一般应首先明确一个质量标准。
根据图像的退化模型及复原的基本过程可见,复原处理的关键在于对系统H的基本了解。
就一般而言,系统是某些元件或部件以某种方式构造而成的整体。
退化模型可分为连续函数退化模型和离散函数退化模型。
2.2连续函数退化模型
假定系统H对坐标为(,)处的冲激函数(x-,y-)的冲激响应为h(x,,y,),则
此式说明,如果系统H对冲激函数的响应为已知,则对任意输入的响应可用上式求得,即,线性系统H完全可以由冲激响应来表征。
图像中冲激响应也称为点扩散函数。
在有噪音的情况下:
2.3离散函数退化模型
对和进行均匀取样后,就可引伸出离散函数的退化模型。
用一维的来说明。
如果f(x)和h(x)周期分别A和B的序列,为避免卷积周期重叠需要对它们进行周期扩展为周期为M≥A+B–1。
f(x)0≤x≤A-1h(x)0≤x≤B-1
fe(x)=he(x)=
0A-1≤x≤M-10B-1<
x≤M-1
那么它们的时域离散卷积可定义为下式:
显然,上式也是具有周期M的序列。
如果用矩阵来表示上述离散退化模型,可写成下式之形式:
退化过程为:
图像f(x,y)被线性操作h(x,y)所模糊,并叠加上噪声n(x,y),构成了退化后的图像g(x,y)。
退化后的图像与复原滤波器卷积得到复原的f(x,y)图像。
图2.2图像的退化/复原过程模型
四、图象复原技术
3.1无约束恢复
由退化模型得:
最小均方误差准:
在最小二乘方意义上说,希望找到一个
使下式的值最小:
3.2逆滤波
设M=N,则:
退化函数H(u,v)与F(u,v)相乘为退化过程,用H(u,v)去除G(u,v)是复原过程,称其为逆滤波。
可描述为:
记M(u,v)为复原转移函数,则其等于1/H(u,v).
3.3维纳(Wiener)滤波器
它一种最小均方误差滤波器。
设Rf是f的相关矩阵:
Rf的第ij元素是E{fifj},代表f的第i和第j元素的相关。
设Rn是n的相关矩阵:
根据两个象素间的相关只是它们相互距离而不是位置的函数的假设,可将Rf和Rn都用块循环矩阵表达,并借助矩阵W来对角化:
fe(x,y)的功率谱,记为Sf(u,v);
ne(x,y)的功率谱,记为Sn(u,v)。
D是1个对角矩阵,D(k,k)=(k),则有:
定义:
代入:
两边同乘以W–1,有:
最后整理得:
五、图像复原的MATLAB实现实例
图形用于界面(GraphicalUserInterfaces,GUI)是提供人机交互的工具和方法。
GUI是包含图形对象(如窗口、图标、菜单和文本)的用户界面。
以某种方式选择或激活这些对象时,通常会引起动作或者发生变化。
一个设计优秀的GUI能够非常直观的让用户知道如何操作MATLAB界面,并且了解设计者的开发意图。
MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。
这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果。
可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。
所谓的GUIDE就是图形用户界面开发环境(GraphicalUserInterfaceDevelopmentEnvironment),它向用户提供了一系列的创建用户图形界面的工具。
这些工具大大简化了GUI设计和生成的过程。
GUIDE可以完成的任务有如下两点:
1)输出GUI。
2)GUI编程。
GUIDE实际上是一套MATLAB工具集,它主要由七部分组成:
版面设计器、属性编辑器、菜单编辑器、调整工具、对象浏览器、Tab顺序编辑器、M文件编辑器。
4.1GUIDE的操作界面及使用方法的介绍
4.1.1.启动GUIDE
在命令窗口中直接键入guide,启动GUIDE,或者直接点击MATLAB上按钮,会出现如图4.1所示的GUIDEQuickStart对话框。
利用GUIDE模板创建GUI,或者打开已经存在的GUI,单击OK按钮,打开版面设计工具,如图4.2所示。
在通常状况下组件面板并不显示出组件的名称,如果需要显示组件名称,则进行下面的操作:
从File菜单中选择Preferences选项,勾选Shownamesincomponentpalette选项即可。
图5.1GUIDE启动对话框
图5.2版面设计器
4.1.2.GUI文件的介绍
GUIDE把GUI设计的内容保存在两个文件中,它们在第一次保存或运行时生成。
一个是FIG文件,扩展名为.Fig(如GUIlx.FIg),它包含对GUI和GUI组件的完整描述;
另外一个是M文件,扩展名为.M(如GUIlx.m),它包含控制GUI的代码和组件的回调事件代码。
这两个文件与GUI显示和编程任务相对应。
在版面设计器中创建GUI时,内容保存在FIG文件中;
对GUI编程时,内容保存在M文件中。
通常情况下在版面设计器工具栏上单击图标可以打开M文件编辑器。
图4.3所示的编辑器显示了GUIwithAxesandMenu模板的M文件的内容。
图5.3M文件编辑器
4.1.3.GUIDE环境的设置
用户可以自定义GUIDE设计环境。
在File菜单下选择Preferences,打开如图4.4所示的设置对话框,可以进行相应的设置。
图5.4GUIDE环境设置
4.2、基于GUI的图像处理软件平台的设计过程
4.2.1.GUIDE版面设计器(即FIG文件)的设计
根据设计需要:
首先拖拽两个图形窗口(Axes),一个作为待处理图片区域,另一个作为已处理图片区域;
其次,拖拽六个电子按钮(RadioButton),作为边缘检测操作按钮以及一个Panel按钮作为检测按钮的支撑面板;
第三,拖拽三个按钮(PushButton),作为灰度变化区域的按钮;
最后,拖拽五个按钮(PushButton),作为选取/保存图片及退出等操作按钮。
将上面的所有按钮及图形窗口合理的布局,达到美观工整的效果,本文设计的GUIDE如图4.5所示,然后运行一下GUI,系统会自动生成GUI文件。
图4.5图像处理软件的GUIDE版面
注意:
为了共享数据,如读入的图像文件数据,建议首先在Figure窗口上添加这个共享数据,即在Figure中单击右键,选择M-fileeditor,进入M文件编辑器,在functionGUIlx_OpeningFcn(hObject,eventdata,handles,varargin)函数的空白处加入
setappdata(handles.figure1,'
im'
0);
4.2.2.选取图片按钮的GUI设计
要想设计一个图像处理的软件,首先要考虑选取图片,选取什么格式的图片,这个是至关重要的,所以先介绍一下选取图片按钮的GUI设计方法。
上面已经规划好了按钮的位置,如果想在点击选取图片按钮时,软件给予响应,需要给按钮输入一定的程序代码,设置代码的方法如下:
右键单击选取图片按钮,选择ViewCallbacks/Callback,系统会自动带设计者进入此按钮的代码输入区域,在下面的空白处输入如下代码[1]:
im);
[filename,pathname]=...
uigetfile({'
*.*'
;
'
*.bmp'
*.tif'
*.png'
},'
selectpicture'
);
%选择图片路径
str=[pathnamefilename];
%合成路径+文件名
im=imread(str);
%读取图片
axes(handles.axes1);
%使用第一个axes
imshow(im);
%显示图片
写完上述代码后,保存M文件,然后运行GUI,现在就可以实现选择图片的功能了。
当然有选取就要考虑存储已处理好的图片,这就引出了存储图片按钮的GUI设计。
4.2.3.存储图片按钮的GUI设计
同样右键单击存储图片按钮,选择ViewCallbacks/Callback,进去M文件后在下面的空白处输入如下代码[2]:
[filename,pathname,filterindex]=...
uiputfile({'
savepicture'
存储图片路径
ifisequal(filename,0)||isequal(pathname,0)
return%如果取消操作,返回
else
axes(handles.axes2);
%使用第二个axes
im=getimage(handles.axes2);
imwrite(im,str);
%写入图片信息,即保存图片
end
4.2.4.图像复原按钮的GUI设计
axes(handles.axes2);
im=getappdata(handles.figure1,'
PSF=fspecial('
motion'
20,7);
J=deconvreg(im,PSF);
imshow(J);
guidata(hObject,handles);
%im=im2double(im);
J=deconvwnr(im,PSF);
4.2.5.退出按钮的GUI设计
同样右键单击退出按钮,选择ViewCallbacks/Callback,进入M文件中,在空白处输入如下代码:
close(gcf)%关闭当前Figure窗口句柄
其他按钮代码的设置都与上面叙述的大同小异,相关图像处理程序代码请参考MATLAB7.0图形图像处理,在这里将不再累述。
4.3、图像处理软件的运行举例
运行GUI,将生成图像处理的软件平台,它可以实现的功能有:
五种常用的边缘检测、灰度直方图的显示、灰度直方图的均衡化、对比度自适应直方图的均衡化、图片的二值化以及彩色图片的灰度化。
现在运行软件并举些相关图像处理实例,如图4.6所示:
图4.6
六、结束语
由于MATLAB强大的工程计算和仿真能力,使越来越多的用户从原来的开发环境转到MATLAB上来。
现在绝大多数MATLAB开发者都是一些从事一定领域的研究者,他们使用其他的开发环境设计GUI不紧编程复杂、而且学习困难,往往需要花费大量时间在编程上。
但是,MATLAB提供了一个简便的开发环境,可以让开发着快速上手,提高了开发者的工作效率。
本文详细向读者介绍了MATLAB的GUI的制作方法,通过这个例子,可以清楚的了解GUIDE的设计方法及相关图像处理代码的编辑,使读者从感性的角度认识GUIDE的功能及使用方法,可以说为初学者提供了一个学习平台,打下坚实的基础。
七、参考文献
[1]孙家广等主编.计算机图形学.第3版.北京:
清华大学出版社,1998.9.
[2]罗军辉等主编.MATLAB7.0在图像处理中的应用.第1版.北京:
机械工业出版社,2007.7.