基于MATLAB GUI的数字图像处理辅助教学系统设计 下载本文

龙源期刊网 http://www.qikan.com.cn

基于MATLAB GUI的数字图像处理辅助教学系统设计

作者:罗琴 李永全

来源:《电脑知识与技术》2018年第08期

摘要:依托MATLAB的图形用户界面开发环境,调用工具箱已有的函数构建一个实用便捷的数字图像处理辅助教学系统,实现交互式控制。通过进行形象化演示,使学生直观感受到算法实现的效果,有助于增强学生对相关知识的理解和掌握。系统界面友好,具有较强的可移植性与扩展性。

关键词:MATLAB;数字图像处理;GUI;空域滤波

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)08-0114-03 1引言

数字图像处理技术应用广泛,包括计算机科学、生物医学、通信领域、工业和工程、军事和文化艺术等领域。处于人工智能的时代,“数字图像处理”作为电子信息工程、通信工程等专业的专业必修课程尤为重要,包含了图像增强、图像变换、图像分割、图像形态学等多个内容,各部分内容算法处理繁多且较为复杂,学生较难理解。借助MATLAB强大的运算和图形展示功能设计并实现数字图像处理辅助教学系统,其较强的实践性使图像处理更加简单和直观,有助于学生系统全面的掌握经典原理和基本算法。 2数字图像处理辅助教学系统设计结构 2.1系统的整体框架

以数字图像处理课程的章节内容为基础,结合数字图像处理技术的特点设计系统的整体框架如图1,其功能包括八大模块:文件管理、图像编辑、常用处理、图像变换、图像增强、图像类型转换、图像分割、图像形态学。 2.2 GUI界面设计流程及布局

系统的开发环境为MATLAB R2014b,通过GUI向导构建图像界面时,GUI设计同时保存两个文件:包含控件图形对象的Fig文件,如图形窗口、文本、菜单、坐标、控件等,包含回调函数的M文件。依照GUI界面设计流程图,如图2,首先在MAT-LAB界面启动guide,对图形界面进行总体布局。其次添加控件对象,菜单对象和坐标轴对象,此处需拖动控件添加两个坐标轴对象,3个静态文本标签,修改对象属性,调整对象位置,如图3。接着对

龙源期刊网 http://www.qikan.com.cn

MenuEditor菜单栏添加三级菜单项,如图4,设置并修改对象属性。最后点击Callback项返回M文件并编写回调函数,进行程序调试后运行后生成图形界面。 2.2.1系统设计的关键点

每个图形对象都有唯一一个句柄,只有获取其句柄,才可对该图形对象进行控制,设置或修改对象的有关属性。回调函数的数据传输主要借助句柄handles进行访问。Handles既可以储存GUI对象信息,又可以储存一般变量。实现不同回调函数间图像数据传送的函数用法为: handles.新变量名=变量值;%新建变量 guidata(hObject,handles);%更新句柄信息 2.2.2系统界面设计

系统界面如图5,主要分为显示区域与操作区域。显示区域:定义两个图形区域。左边区域显示载人的原图像,载入原图像类型包括tif、jpg、bmp、png和**五种格式;右边区域为通过处理后的图像。操作区域:选择菜单栏功能模块实现对数字图像的各种处理。 3空域滤波模块的设计及实现

由于篇幅限制,本系统仅以空域滤波的设计和实现来呈现模块设计的具体过程。 3.1空域滤波

空域滤波简化形式如公式(1)所示

w是滤波器系数,z是与该系数对应的图像灰度值,mn为滤波器中包含的像素点总数。空域滤波即在图像空间中借助模板对图像领域进行操作,处理图像的每个像素值,主要分为线性滤波和非线性滤波。数字图像中存在部分的噪声可通过空域滤波的方法除去,该实验平台中空域滤波包括中值滤波、均值滤波、自适应滤波,程序编写时均采用3*3的滤波模板。 3.1.1中值滤波的设计

中值滤波是一种非线性平滑滤波,基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替.中值滤波表达形式如公式(2)所示。 中值滤波实现方法:

1)通过imread()函数读入原始彩色图像,即在“文件”菜单下选择“打开”图片。

龙源期刊网 http://www.qikan.com.cn

2)利用rgb2gray()函数将彩色图像转换成灰度图像,即在“图像类型转换”模块选择子菜单“RGB转灰度图”。

3)用imnosie()在灰度图像中加入噪声,即在“编辑”模块选择“添加噪声”。

4)利用medfilt2()函数进行中值滤波,即在“图像增强”模块选择空域滤波下的“中值滤波”对文件进行操作。 程序部分代码如下: 3.1.2均值滤波的设计

均值滤波主要思想是邻域平均法,即用求模板内像素灰度的平均值来代替每个像素的灰度。均值滤波的模板就是ones(n,n),模板内所有元素均为1,它们的权重相同,其降噪平滑后的图像表达式如公式(3)所示。

其中,s是点(x,y)领域内的点集,M是点集s中的总数点。 均值滤波实现方法前三步与中值滤波相同,第四步为:

通过fspecial()函数生成的w1是3*3的矩形平均滤波器;利用filter2()函数使这个掩模的中心逐个滑过图像的每个像素,即在“图像增强”模块选择空域滤波下的“均值滤波”对文件进行操作。

均值滤波主要代码如下: 3.2加噪后滤波效果比较

首先,在“图像类型转换”选择子菜单“RGB转灰度图”实现彩图转灰度图像,效果如图6所示。具体实现函数为f=rgb2gray(i),其中i为RGB图像,f为转换后的灰度图像。 接下来,“编辑”模块下拉菜单选择“添加噪声”进行操作,具体用法为:f=imnoise(i,’噪声类型’,’噪声参数’);其中i为灰度图像,f为添加噪声后的图像。每种滤波器参数各不相同,添加噪声操作区会提示“输入噪声参数”,根据需要进行方差数值设定。 3.2.1添加椒盐噪声后滤波结果

灰度图像加入方差为0.02的椒盐噪声后的效果图7。

从直观的角度看,中值滤波对椒盐噪声的效果更优,均值滤波和自适应滤波对椒盐噪声几乎没有抑制作用。