杜云明 田思慶 王斌
摘? ?要:為系統實現《數字圖像處理》課程實驗的可視化交互仿真,文章提出一種基于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.
(編輯:李曉萍)