论文部分内容阅读
摘要:在MATLABGUI的环境下,设计实现了一个数字图像处理演示系统,利用系统演示图像处理的方法、过程。系统界面友好、内容丰富、具有良好的交互性和实用性,为学生提供了一个数字图像处理的算法演示及模拟开发的实验平台,能帮助学生掌握数字图像处理的理论方法,有利于学生加深对原理、算法的理解,激发学生的学习兴趣。
关键词:数字图像处理;图形用户界面;交互式可视化
引言
数字图像处理处在科技发展的前沿,是一门理论性和实践性非常强的学科,为了让学生对数字图像处理过程有一个比较直观的认识,在学习具体算法时需要形象化演示来加深理解。MATLAB软件提供了图像处理工具箱,GUI更提供了友好的图形用户交互界面开发环境,使操作便捷简单,方便进行功能的修改和扩充。
为了让学生加深理解MATLAB图像处理工具箱中的函数的使用方法,以及利用GUI进行二次开发的过程。本文基于MATLAB GUI设计了一个数字图像处理演示系统,该系统具有很好的交互性,用户可以与机器交互操作,在界面上直接输入设置参数,即可得到直观的的处理结果,因而便于使用者的处理操作和分析处理结果。
1.实验平台总体结构设计
本次设计是通过MATLAB R2014b软件实现一个数字图像处理演示系统。本系统功能分为八个模块,如下所示:图像基本操作模块数字图像处理基础模块图像增强模块图像分割模块图像几何变换模块频域处理模块数学形态学模块综合演示模块。系统框图如图1所示:
本次系统结构设计采用总分的方法,即先设计系统介绍界面和主界面,再设计各个子界面。M文件的编写也是如此,先编写主框架的回调函数,再编写子模块的回调函数。系统的子界面是由不同功能按键调用的,每个按键都有相对应的子界面。通过点击按键运行相对应的M文件,而后弹出相应的子界面。
此系统的主界面设计为先是动画界面介绍系统名称,而后跳转到系统介绍界面。介绍界面具体设计为:在图形界面编窗口里,首先调用axes控件和静态文本框,axes控件用来生成坐标轴对象,以便于显示界面背景图像。再通过改变静态文本框的属性来显示相关系统介绍。同时添加一个按钮并设置为进入系统。系统介绍界面效果如图2所示。
在介绍界面单击进入按钮后,进入系统主界面,主界面中央有一个系统功能选择面板,分布着八个按键,分别为图像基本操作、图像处理基础、图像增强、图像分割、图像几何运算、频域处理、数学形态学及综合演示。界面右下角为退出按键,用以退出系统。如图3所示为主界面窗口:
本实验系统有多个功能模块,下面只详细叙述图像分割模块。
2. 图像分割模块的实现
2.1 阈值分割
阈值分割是最常用的图像分割方法,因其操作简单、计算量小、性能较稳定而成为图像分割中最基本、最广泛使用的分割技术。阈值分割特别适用于目标和背景占据不同灰度级的图片。此界面通过滑动条的滑动来设置阈值参数,也可通过动态文本框手动输入阈值T,滑动条与文本框是连通的,滑动条滑动后的值可在文本框内显示,文本框内的值也可以转换成滑动条的值,实现不同阈值的分割。其处理效果如图4所示。
阈值滑动条回调函数如下:
T=get(hObject,'Value');
axes(handles.axes6);
I=imread('xiaoxiang.jpg');
Ibw = im2bw(I,T/255); %阈值分割
imshow(Ibw);
set(handles.edit3,'string',num2str(get(hObject,'Value')));
阈值文本框回调函数如下:
T=get(hObject,'string');
T=str2num(T);
axes(handles.axes6);
I=imread('xiaoxiang.jpg');
Ibw = im2bw(I,T/255);
imshow(Ibw);
set(handles.slider3,'Value',str2num(get(hObject,'string')));
2.2 边缘检测
图像边缘是所要提取的目标区域和背景的分界线,将图像边缘检测出来才能进一步将目标和背景区分开来。通过读取图像按钮激活算子选择按钮和算子类型面板控件,使用radiobutton单选按钮来选择边缘检测的算子并进行边缘检测。共有5个算子,Canny算子、Sobel算子、Robert算子、Prewitt算子、Log算子。以Canny算子边缘检测为例,算子检测图像边缘效果如图5所示。
Canny算子按键回调函数如下:
I=imread('yaoli.jpg');
I=rgb2gray(I);
axes(handles.axes4);
BW1 = edge(I,'canny');
imshow(BW1);
3. 结论
本文主要阐述了数图像处理演示系统的设计步骤和实现方法,此系统可以达到界面操作可视化、处理结果可视化的要求,系统的各级界面都能实现人为动态的参数设置,并能在界面上显示处理结果进行分析,同时突出了原理介绍、实验操作和结果分析的功能,将理论与实践完美结合,有助于学习图像处理技术和进行进一步的开发。通过对图像处理结果的比较,可以形象地验证图像处理算法,能够充分的体现出图形用户界面的易用性、良好的扩展性以及便捷性,用户只需通过简单的操作就能完成想实现的功能。此外,图形用户界面十分的人性化,我们可以人为的设计界面,使界面上的控件布局更加美观,达到激起学生学习兴趣的效果。
参考文献:
[1]邢文博,蒋敬.基于Matlab開发数字图像处理GUI[N].电气电子教学学报,2013-12-15.
[2]贾永红.研究生《图像处理与分析》课程的建设与改革[J].地理空间信息,2012,10(1):171-174.
[3]冈萨雷斯.数字图像处理的MATLAB实现[M].第2版.北京:清华大学出版社,2013:4-6.
[4]罗华飞.MATLAB GUI设计学习手记[M].第2版.北京:北京航空航天大学出版社,2011:345-402.
[5]张鸣.基于MATLAB GUI的通信原理演示系统设计[J].实验技术与管理,2013,30(9):111-113.
[6]曹高飞.基于MATLAB的图像增强教学演示系统的设计与实现[D].成都:电子科技大学,2013:24.
[7]陈垚光,毛涛涛.精通MATLAB GUI设计[M].第3版.北京:电子工业出版社,2013:87.
[8]李磊.基于MATLAB GUI的数字图像处理系统设计[D].成都:成都理工大學,2012:31.
[9]张弘,谢凤英.数字图像处理与分析[M].第2版.北京:机械工业出版社,2013:124.
[10]陈超.MATLAB应用实例精讲----图像处理与GUI设计篇[M].北京:电子工业出版社,2011:286-293.
[11]郭依正,焦蓬蓬.Matlab GUI在低质量指纹图像增强中的应用[J].计算机技术与发展,2013(07):57-63.
关键词:数字图像处理;图形用户界面;交互式可视化
引言
数字图像处理处在科技发展的前沿,是一门理论性和实践性非常强的学科,为了让学生对数字图像处理过程有一个比较直观的认识,在学习具体算法时需要形象化演示来加深理解。MATLAB软件提供了图像处理工具箱,GUI更提供了友好的图形用户交互界面开发环境,使操作便捷简单,方便进行功能的修改和扩充。
为了让学生加深理解MATLAB图像处理工具箱中的函数的使用方法,以及利用GUI进行二次开发的过程。本文基于MATLAB GUI设计了一个数字图像处理演示系统,该系统具有很好的交互性,用户可以与机器交互操作,在界面上直接输入设置参数,即可得到直观的的处理结果,因而便于使用者的处理操作和分析处理结果。
1.实验平台总体结构设计
本次设计是通过MATLAB R2014b软件实现一个数字图像处理演示系统。本系统功能分为八个模块,如下所示:图像基本操作模块数字图像处理基础模块图像增强模块图像分割模块图像几何变换模块频域处理模块数学形态学模块综合演示模块。系统框图如图1所示:
本次系统结构设计采用总分的方法,即先设计系统介绍界面和主界面,再设计各个子界面。M文件的编写也是如此,先编写主框架的回调函数,再编写子模块的回调函数。系统的子界面是由不同功能按键调用的,每个按键都有相对应的子界面。通过点击按键运行相对应的M文件,而后弹出相应的子界面。
此系统的主界面设计为先是动画界面介绍系统名称,而后跳转到系统介绍界面。介绍界面具体设计为:在图形界面编窗口里,首先调用axes控件和静态文本框,axes控件用来生成坐标轴对象,以便于显示界面背景图像。再通过改变静态文本框的属性来显示相关系统介绍。同时添加一个按钮并设置为进入系统。系统介绍界面效果如图2所示。
在介绍界面单击进入按钮后,进入系统主界面,主界面中央有一个系统功能选择面板,分布着八个按键,分别为图像基本操作、图像处理基础、图像增强、图像分割、图像几何运算、频域处理、数学形态学及综合演示。界面右下角为退出按键,用以退出系统。如图3所示为主界面窗口:
本实验系统有多个功能模块,下面只详细叙述图像分割模块。
2. 图像分割模块的实现
2.1 阈值分割
阈值分割是最常用的图像分割方法,因其操作简单、计算量小、性能较稳定而成为图像分割中最基本、最广泛使用的分割技术。阈值分割特别适用于目标和背景占据不同灰度级的图片。此界面通过滑动条的滑动来设置阈值参数,也可通过动态文本框手动输入阈值T,滑动条与文本框是连通的,滑动条滑动后的值可在文本框内显示,文本框内的值也可以转换成滑动条的值,实现不同阈值的分割。其处理效果如图4所示。
阈值滑动条回调函数如下:
T=get(hObject,'Value');
axes(handles.axes6);
I=imread('xiaoxiang.jpg');
Ibw = im2bw(I,T/255); %阈值分割
imshow(Ibw);
set(handles.edit3,'string',num2str(get(hObject,'Value')));
阈值文本框回调函数如下:
T=get(hObject,'string');
T=str2num(T);
axes(handles.axes6);
I=imread('xiaoxiang.jpg');
Ibw = im2bw(I,T/255);
imshow(Ibw);
set(handles.slider3,'Value',str2num(get(hObject,'string')));
2.2 边缘检测
图像边缘是所要提取的目标区域和背景的分界线,将图像边缘检测出来才能进一步将目标和背景区分开来。通过读取图像按钮激活算子选择按钮和算子类型面板控件,使用radiobutton单选按钮来选择边缘检测的算子并进行边缘检测。共有5个算子,Canny算子、Sobel算子、Robert算子、Prewitt算子、Log算子。以Canny算子边缘检测为例,算子检测图像边缘效果如图5所示。
Canny算子按键回调函数如下:
I=imread('yaoli.jpg');
I=rgb2gray(I);
axes(handles.axes4);
BW1 = edge(I,'canny');
imshow(BW1);
3. 结论
本文主要阐述了数图像处理演示系统的设计步骤和实现方法,此系统可以达到界面操作可视化、处理结果可视化的要求,系统的各级界面都能实现人为动态的参数设置,并能在界面上显示处理结果进行分析,同时突出了原理介绍、实验操作和结果分析的功能,将理论与实践完美结合,有助于学习图像处理技术和进行进一步的开发。通过对图像处理结果的比较,可以形象地验证图像处理算法,能够充分的体现出图形用户界面的易用性、良好的扩展性以及便捷性,用户只需通过简单的操作就能完成想实现的功能。此外,图形用户界面十分的人性化,我们可以人为的设计界面,使界面上的控件布局更加美观,达到激起学生学习兴趣的效果。
参考文献:
[1]邢文博,蒋敬.基于Matlab開发数字图像处理GUI[N].电气电子教学学报,2013-12-15.
[2]贾永红.研究生《图像处理与分析》课程的建设与改革[J].地理空间信息,2012,10(1):171-174.
[3]冈萨雷斯.数字图像处理的MATLAB实现[M].第2版.北京:清华大学出版社,2013:4-6.
[4]罗华飞.MATLAB GUI设计学习手记[M].第2版.北京:北京航空航天大学出版社,2011:345-402.
[5]张鸣.基于MATLAB GUI的通信原理演示系统设计[J].实验技术与管理,2013,30(9):111-113.
[6]曹高飞.基于MATLAB的图像增强教学演示系统的设计与实现[D].成都:电子科技大学,2013:24.
[7]陈垚光,毛涛涛.精通MATLAB GUI设计[M].第3版.北京:电子工业出版社,2013:87.
[8]李磊.基于MATLAB GUI的数字图像处理系统设计[D].成都:成都理工大學,2012:31.
[9]张弘,谢凤英.数字图像处理与分析[M].第2版.北京:机械工业出版社,2013:124.
[10]陈超.MATLAB应用实例精讲----图像处理与GUI设计篇[M].北京:电子工业出版社,2011:286-293.
[11]郭依正,焦蓬蓬.Matlab GUI在低质量指纹图像增强中的应用[J].计算机技术与发展,2013(07):57-63.