数字图像处理仿真实验平台的设计与实现

2021-08-16 09:44杜云明田思庆王斌
中国教育信息化·基础教育 2021年7期
关键词:实验平台图形用户界面数字图像处理

杜云明 田思庆 王斌

摘   要:为系统实现《数字图像处理》课程实验的可视化交互仿真,文章提出一种基于MATLAB GUI的数字图像处理虚拟实验平台的设计方案。利用MATLAB GUI可视化开发环境设计实验交互界面,通过回调函数实现后台算法仿真功能。平台采用嵌套方式构架实验教学内容,集基本原理实验和综合操作实验于一体,具有演练结合、操作方便、易于扩展等特点,有利于教师的辅助教学和学生对知识的内化理解,对学生的实践能力和创新能力培养具有帮助作用。

关键词:数字图像处理;虚拟仿真;实验平台;MATLAB;图形用户界面

中图分类号:G642 文献标志码:B 文章编号:1673-8454(2021)14-0041-04

《数字图像处理》是高等院校电子信息类专业的核心专业课程,其所涉及的原理和相关处理技术在模式识别、智能检测与控制、信号传输等领域有着广泛的应用[1]。因此在教学过程中,不仅要求学生要熟练掌握数字图像处理的基本概念、基本原理、经典算法和处理技巧,更能够融会贯通地实现对知识的转化和运用,真正达到解决实际问题的目的。然而传统的“先理论、后实验”的二元分离教学模式,难以保证良好的教学效果。有限的学时设置也使学生无法全面、系统、深入地学习和掌握课程的基本原理和算法[2][3]。此外,缺少与教材紧扣的实验系统,更是制约了学生对数字图像处理技术的理解和应用[4]。因此,开发能够辅助教学且可满足实践需求的数字图像处理实验仿真平台,已成为教学亟待解决的关键问题。

一、现有数字图像处理实验平台的不足

目前,各高校结合自身特点和需求,尝试开发出了不同的数字图像处理实验教学平台。其中,刘书杰等利用Delphi软件结合BussinessSkinForm界面控件,开发的实验系统实现了基本的图像处理[5]。李荣根据专业特点,提出了在Java语言环境下,通过扩展Image J插件的功能来实现对图像处理的方案[6]。林雪华借助VC++软件开发了界面化的实验平台,实现对图像处理基本算法的验证实验[7]。上述三款实验平台分别以不同的编程语言为基础,开展了对数字图像处理基本原理及算法的验证性实验。实验过程中,不仅要求学生深谙图像处理的物理含义,更需具备深厚的编程基础和技巧。这对初学者而言,无疑增加了参与的难度,同时也影响了课程本身学习的兴趣。

为使学生有效参与实验教学,各种基于MATLAB GUI的图像演示、仿真、实验系统相继问世[8-12]。但从其内容和操作方式来看,多以交互体验式的原理感性认知为主,缺少编程实践和知识整合运用的综合性实验环节。另外在操作过程中,学生无法了解实验设置的目的、实现的过程和具体步骤,且实验结果也缺少必要的分析,这无疑降低了实验的效果,不利于学生创新实践能力的培养。为此,本文借助MATLAB的图形界面开发功能,设计了一款数字图像处理实验平台,既可实现对数字图像处理基本原理和经典算法的交互实验,也可实现以实际项目为依托的综合实验和编程实践。

二、实验平台设计思路

数字图像处理实验平台分为基本原理实验和综合操作实验两大模块。其中,基本原理实验包括图像基本处理实验、图像增强处理实验、图像分割处理实验、图像几何变换实验、图像频域处理实验和图像形态学处理实验[13]。综合操作实验包括血液细胞计数实验、车辆牌照识别实验、人脸目标跟踪实验、指纹识别实验、米粒分形检测实验。实验平台整体结构框图如图1所示。

根据系统结构安排,实验平台采用层次化设计思想,通过总分、嵌套方式完成实验内容的構架[14]。利用MATLAB图形界面开发环境,通过界面布局、控件添加、参数设置、回调函数编写、测试优化等步骤,实现交互界面设计。利用界面访问机制、函数调用机制和数据共享机制,完成具体实验内容操作。

三、实验平台设计与实现

实验平台以交互界面方式展现相关内容与要求,根据平台结构逻辑和实验内容安排,设计中采取主界面和子界面访问切换方式实现实验分层操作。其中,主界面为系统初始访问界面,子界面对应为各个实验操作界面。根据具体实验内容,子界面还可嵌套不同功能的下级子界面,以实现内容的细化。

1.主界面设计与实现

平台主界面设计包括起始导入界面和实验目录界面两部分[15],其界面外观效果如图2所示。在起始导入界面中,点击“进入平台”按钮,则会跳转到实验目录界面。在实验目录界面中,点击实验名称按钮,即可进入相应的实验操作子界面,点击“退出实验”按钮,则会关闭该界面并返回上一级起始界面。

起始导入界面设计及按键实现界面切换访问功能的主要代码如下:

% 导入界面外观效果的程序设计

function varargout = daorujiemian_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

backgroundImage=importdata('image_name.jpg');

axes(handles.axes1);

image(backgroundImage);

axis off;

% “进入平台”按键访问实验目录界面的程序设计

function jinrupingtai_Callback(hObject, eventdata, handles)

h=gcf;

shiyanmulujiemian; %目录界面文件名称

close(h);

2.子界面设计与实现

(1)基本原理实验子界面

以图像增强处理实验中的“邻域平均法平滑处理”子实验为例,简要说明基本原理实验子界面及其嵌套功能实验子界面的设计过程。

在实验目录界面中,点击“图像增强处理实验”按钮,即可跳转访问到如图3所示的图像增强处理实验子界面。在该界面中,将左侧设为实验内容介绍区,旨在向学生介绍图像增强处理所包含的实验内容,让学生对该部分有整体的了解和认知,可在GUI编辑界面通过添加面板控件、静态文本控件和轴控件来实现。界面右侧设为实验的具体功能操作区,按照图像增强处理所涉核心内容和主要方法共设计了八个子实验,通过面板、按钮、互斥选择按钮群等控件组合实现具体实验的操作。由于图像灰度变换和图像平滑实验包含有多种处理方法,操作时需通过上方的实验按钮激活下面的实验方法按钮群,而后点击选择具体方法、访问对应子实验界面,完成具体实验内容。

如上所述,当激活并选择邻域平均法实现图像平滑处理实验时,界面就会跳转至如图4所示的嵌套功能实验子界面。该界面划分为实验说明、实验操作和图像显示三个区域。其中,实验说明区主要介绍具体实验的内容和相关要求,让学生对实验有全面、清晰的认识。实验操作区以控件组合方式引导学生完成实验操作、结果分析和编程学习与实践。图像显示区则是将处理结果直观显示出来,便于对比分析。

在实验操作区中,各功能按钮采用依次激活方式设置,其中“读取图像”按钮功能可由imread( )函数实现,“添加噪声”按钮由imnoise( )函数实现。噪声类型主要设定了椒盐和高斯两种常见噪声,可通过单选方式进行选取,噪声相关参數选用了默认值,实际编程中可以根据需要自行调整。“模板选择”按钮功能主要由fspecial( )和imfilter( )两个函数实现,实际操作时提供了3×3、5×5、7×7三种不同大小的可选模板类型。

通过实验使学生直观查看到不同大小模板对相同噪声和不同噪声平滑处理效果的影响。“实验分析”按钮利用界面访问机制,以弹窗形式调用结果分析界面,该界面以文本方式阐述实验机理、分析实验结果、总结差异原因等,便于修正或巩固学生对实验原理和实验方法的理性认知。另外,为了加强学生编程技能的培养,还设置了“典型程序”功能按键,该按钮利用open( )函数调用m程序文件。文件中给出原理编程代码和函数编程代码两类典型程序,便于学生对原理的内化理解和编程运用。同时还设置了“编程实践”功能按钮,该按钮利用edit( )函数创建脚本文件,学生可模仿程序示例开展创造性的编程实践活动,达到演练结合的实验目的。部分实验关键程序实现代码如下:

% 加噪按钮控件激活噪声类型面板控件

function Add_noise_Callback(hObject, eventdata, handles)

set(handles.Noise_type_uipanel,'visible','on');

% BOX模板构建及邻域平均平滑处理

B=fspecial('average',n*n);

Denoise_image=imfilter(Noise_image,B);

axes(handles.axes2);

imshow(Denoise_image);

% 弹窗界面调用

function Experimental_analysis_Callback(hObject, eventdata, handles)

h=gcf;

analysis interface;%弹窗界面文件名称

% m文件调用

function Typical_procedure_Callback(hObject, eventdata, handles)

open('procedure_example.m')

(2)综合操作实验子界面

综合实验部分既包含原理综合运用实验,又包含静态图像向动态图像拓展的应用实验。下面以“人脸目标跟踪实验”为例,说明综合操作实验子界面的设计过程。该实验以视频动态图像为操作对象,利用粒子滤波技术实现对人脸目标的跟踪,并进行跟踪有效性分析。

在实验目录界面中,点击“人脸目标跟踪实验”按钮,即可跳转访问到如图5所示的“人脸目标跟踪实验”子界面。该界面仍然采用实验说明、实验操作和结果显示三个区域布局。其中,实验说明区利用面板和静态文本控件实现对实验内容和要求的说明。实验操作区利用按键、面板和编辑文本控件组合实现交互操作。结果显示区则利用轴控件实现相关处理结果的显示。

在实验操作区中,“读取视频”按钮功能由VideoReader( )函数实现,完成视频动态图像信息的获取;“采集图像”按钮功能由read( )函数实现,完成视频第一帧图像的采集;“确定目标”按钮功能由imcrop( )函数实现,主要是在首帧图像上完成以手动方式交互确定人脸目标区域,达到对跟踪器初始化的目的。另外,结合实验内容和要求,界面中还添加了“参数设置”操作按钮,并设定了目标模型和粒子数量两类可调参数。实验中仍采取由上层操作按钮来激活下层参数类型控件,引导完成具体参数设置。其中,目标模型可选用RGB和YUV两种参数,旨在研究不同色彩空间下的目标建模对环境抗干扰能力和跟踪稳定性的影响。粒子数量参数可自行设定,旨在研究不用数量样本对跟踪有效性的影响。

在具体参数设置时,利用str2num( )函数将输入的字符串转换为数值,实现前台界面向后台程序进行数据传递。最终利用“跟踪显示”按钮完成跟踪结果的演示,该按钮可通过调用implay( )函数来实现。为研究所设计跟踪方法的有效性,界面还添加了“相似度分析”按钮,其主要功能是通过将每帧最终跟踪区域与初始目标区域进行相似度比较,分析判断每帧跟踪的准确性。部分实验关键程序代码如下:

% 视频图像处理

Video=VideoReader(Filename);% 获取视频信息

Image1=read(Video,1);% 采集首帧图像

Target=imcrop(Image1);% 确定目标区域

% 参数获取及数据转换

Parameter_character=get(hObject,'string');

Parameter_data=str2num(Parameter_character);

% 目标模型构建

Target = rgb2hsv(Target);

function Probmap = hist(Target,rmin,rmax,cmin,cmax);% 提取目标区域HSV色度信息,建立加权概率直方图

% 相似度比较

W=sqrt(Probmapm*Probmap);% 跟踪区域与目标区域直方图计算

S=sum(W);% 相似度结果计算

四、实验平台特点

1.逻辑清晰,结构合理

平台按照知识体系构架实验内容,利用嵌套方式组织实验操作。通过先基础、后综合的实验安排,有效引導学生深入学习。另外在具体实验中,实验要求、实验操作、结果显示的界面布局范式,有效模拟实验全过程,使得实验思路更加清晰、实验目的更加明确、实验操作更加具体。

2.操作方便,易于扩展

平台提供的交互式实验仿真界面,便于学生通过方法选择和参数调整,对比分析不同算法的处理结果以及参数变化对仿真结果的影响。同时,师生可结合自身的实际体验与学习需求,修改底层代码程序或删、补实验内容,实现对平台个性化的优化与完善。

3.演练结合,助力创新

针对各种图像处理算法,平台提供了典型的程序示例,多角度帮助学生加强理论学习和转化运用。同时还为学生提供了编程实践入口,便于学生在对原理理解和内化的基础上,创造性地加以编程实践应用,有利于学生创新能力培养。

五、结语

数字图像处理仿真实验平台将抽象的图像处理理论和算法具体化、可视化,使实验操作更具交互性,可有效激发学生参与教学的积极性和主动性。该平台应用于《数字图像处理》课程实验,有助于学生对知识的理解和内化,能够助力学生实践能力和创新能力的培养,有利于改善课程教学效果。

参考文献:

[1]程远航.数字图像处理基础及应用[M].北京:清华大学出版社,2018.

[2]吴全玉,刘晓杰,潘玲佼,等. “数字图像处理”课程实验教学研究与探索[J].电气电子教学学报,2016,38(1):121-124.

[3]张晓强.学术导向的图像处理课程教学改革[J].实验科学与技术,2018,16(4):76-81.

[4]张鑫,吴娱,平子良,等.基于Matlab GUI的数字图像处理实验平台设计[J]. 现代电子技术,2014,37(18):6-8.

[5]刘书杰,周晓峰.基于Delphi语言的数字图像处理实验系统设计[J].长春大学学报,2012,22(8):945-948.

[6]李荣.基于Java语言和ImageJ平台的数字图像处理实验教学方案[J].电脑知识与技术,2016,12(36):146-148.

[7]林雪华.基于VC++的数字图像处理实验平台的实现[J].洛阳师范学院学报,2016,35(11):50-53+56.

[8]饶俊慧.基于MATLAB GUI的数字图像处理演示系统设计[J].玉林师范学院学报,2012,33(5):102-106.

[9]王文成,李健,王瑞兰,等.基于Matlab GUI的数字图像处理仿真平台设计与开发[J].实验技术与管理,2019,36(2):141-144.

[10]齐玉娟,王延江.基于Matlab GUI的图像和视频处理仿真系统设计[J].实验技术与管理,2019,36(3):146-149.

[11]傅志中,赵宇飞,周宁,等.基于Matlab图像采集工具箱的图像处理实验平台设计[J].实验室研究与探索,2017,36(8):100-103.

[12]郑庆庆,吴谨,朱磊,等.交互式图像分割实验系统开发[J].实验技术与管理,2018,35(4):86-90.

[13]杜云明,田静,刘义.数字图像处理实验平台设计[J].中国科技信息,2017(16):66-67.

[14]田静,杜云明,周思宇.数字图像处理演示系统设计[J].中国科技信息,2017(16):58-59.

[15]胡新艳,霍文晓,车晓岩,等.基于MATLAB GUI的数字信号处理实验仿真平台设计[J].电子技术与软件工程,2019(8):58-59.

(编辑:李晓萍)

猜你喜欢
实验平台图形用户界面数字图像处理
图形用户界面外观设计专利保护问题探析——以“奇虎诉江民案”为例
浅谈图形用户界面(GUI)技术专利现状
图形用户界面法律保护问题与对策
云计算在职业院校中的应用与思考
生物医学工程专业创新人才培养策略
信息与计算科学专业《数字图像处理》课程教学探讨与实践
以应用实例为主线、以程序设计为主导的数字图像处理课程教学方法改革
基于LabVIEW的虚拟实验平台设计
MiniGUI在基于OMAP5912开发板上的移植