魏潤國 ,禹 舜 ,胡東升 ,張高林 ,趙文強
(1.西藏大學工學院電子信息系,西藏拉薩850000;2.西藏大學理學院數學系,西藏拉薩850000)
近些年來,隨著信息化社會的發展,人工智能和大數據日益成熟,這其中就不可避免地涉及到圖像領域的相關知識。其中數字圖像處理作為圖像領域的入門基礎,對于入門的新人來說,數字圖像處理的相關理論知識難以理解。尤其是圖像處理的算法理論性比較強,采用普通的編程軟件難以達到預期的效果。MATLAB作為一款工程型的軟件,具有強大的運算處理能力。本文設計了一款基于GUI(GraphicalUser Interface)用戶交互界面的數字圖形處理仿真系統。其簡單易懂的界面以及符合理論的結果,對于剛剛入門的新人來說,學習起來更得心應手。該系統具有良好的實用性、用戶交互性。用戶可以形象直觀地感受到數字圖形處理算法得到的效果以及算法的具體實現步驟,并且該系統具有一定的擴展和改進空間。
隨著數字圖像處理技術的不斷發展和完善,目前已經廣泛應用于了各個領域,如農牧業、林業、環境、軍事、工業和醫學等等。用戶在使用該系統時,并不需要關心內部所執行的操作是如何運行的,而是集中在所提供的界面上。根據界面所提供的功能就可以方便直觀的得到用戶想要的結果[2]。這一點充分發揮了GUI界面友好人機交互的優點。這為數字信號處理的學習提供了一個學習平臺,尤其是對數字圖像處理的初學者,對于一些相關技術的理論和算法不能夠深入理解,本系統可以在數字圖像處理學習方面給予他們幫助。
文中所設計的系統是利用MATLAB來做的一個人機友好交互界面的數字圖像處理系統。本系統功能模塊主要分為圖像的運算、圖像的變換、圖像的增強、圖像的分析、邊緣提取和圖像分割、圖像的二值形態學操作等。對每個模塊再進行進一步的分類,編寫每個模塊下的函數。在自定義的界面,對每個模塊下的功能函數再進行回調函數的編寫,從而完成了該功能的設計。完成了每個功能函數的編寫之后,設計一個主界面,對每個功能模塊進行實時調用,即可完成本系統的設計。系統功能模塊分布如下:

圖1 系統功能模塊分布
在搭建GUI交互界面時,在編輯界面進行圖形對象的編輯操作時,MATLAB會自動產生相應的fig文件。在完成界面的搭建時,MATLAB中產生的fig文件會生成一個和fig文件名相同的m文件,這個腳本文件用于圖形對象所對應的回調函數的調用和編寫[2]。
在GUI界面中,句柄圖形的應用是重中之重。在MATLAB中,每當創建一個圖形對象時,MATLAB內部的系統會自動給當前創建的對象一個特定的標示符,這是區別其他對象的一個標志,這個標示符稱為圖形對象的句柄。通過使用這個句柄來訪問對象的屬性,在編寫程序中調用圖形對象時,也是使用圖形對象的句柄,比如說對該句柄圖形所對應的對象進行控制,修改其中的屬性,調用其回調過程等[2]。
在MATLAB中新建一個GUI對象,選擇Blank GUI,進入界面設計編輯器,如圖2所示。將新建的GUI保存為main_gui,保存后之后在當前文件夾下會自動生成main_gui.fig和main_gui.m兩個文件。其中main_gui.fig用來編輯界面,main_gui.m用來編輯界面中所對應的回調函數。

圖2 界面設計編輯器界面
在界面設計編輯器中添加一個Static Text對象和4個Push Button對象,如圖所示。雙擊Static Text對象,進入當前對象的屬性檢查器,在String選項中,把Static Text改為數字圖像處理系統,并適當調整字體大小。對4個Push Button對象分別設置組件屬性,將其對象下對應的String分別改為進入、制作團隊、修改建議、退出。同時對4個Push Button的Tag分別改為特定的標示字符。編輯保存好之后,在main_gui.m文件中會出現相應特定標示字符的回調函數。例如名稱為制作團隊的Push Button下Tag為team,則在main_gui.m中會出現function team_Call?back(hObject,eventdata,handles)回調函數,在回調函數中編寫對象的程序,則點擊對應的按鈕后,會執行相對應的程序。本系統中,主要是利用上述原理來實現對數字圖像的處理。
選擇文件模塊,可以選擇不同格式的文件進行處理,在一定程度上增強了系統的多元性和兼容性。具體代碼如下:

在系統的主界面中有一個修改建議的按鈕,通過點擊按鈕,可以在連接上互聯網的情況下,及時向后臺反應建議,其主要通過發送郵件的方式來通知后臺。在該按鈕下編輯回調函數,即可完成上述功能,主要函數如下。

在上述函數中,鍵入的主題和內容后,編輯框會自動讀取鍵入的內容,并將其讀取為字符串格式。在點擊發送按鈕下,函數會把鍵入的主題和內容中的字符串格式轉換為mat格式,便于郵件的發送。
堅持共建共治,形成食品藥品安全社會管理大格局。加大對創建國家食品安全城市和建設“食品藥品安全內蒙古”的宣傳,引導公眾廣泛參與。目前市民對創建國家食品安全城市的知曉率達90%以上,滿意度達70%以上。及時公開公示信息,信息公開率達100%。加大案件查辦力度,2014年以來,全市共出動執法人員10萬余次,移交公安部門立案1200余件并全部結案,依法關停企業和商戶85家。
在修改建議界面輸入主題和內容,如圖3所示,點擊發送按鈕,即可完成建議發送功能,發送是以郵件的形式完成發送的。

圖3 修改建議界面
GUI界面之間的鏈接采用傳統的方式進行鏈接。本文采用控件Push Button的方式進行切換,在控件Push Button對應的回調函數下鍵入需要切換界面的m文件名即可完成界面的切換。
MATLAB與圖像處理技術聯系起來,已經成為數字圖像處理的首要工具。本文系統設計所用到的工具就是MATLAB提供的GUI平臺,在該平臺上自定義所需功能,實現一個可視化易于操作的界面,圖4為系統的主界面示意圖。系統主要分為圖像的運算、圖像的變換、圖像的增強、邊緣提取和圖像分割、二值形態學操作、圖像分析6大模塊。
在每一個模塊下,又可分為不同的子模塊。圖像的運算模塊又可分為圖像的代數運算、圖像的幾何操作、圖像的領域和滑塊操作子模塊;圖像的變換模塊又可分為Radon變換、傅里葉變換、圖像壓縮、小波變換、離散余弦變換子模塊;圖像的增強模塊又可分為空域變換增強、空域濾波增強、頻域增強子模塊;邊緣提取和圖像分割模塊又可分為邊緣提取和四叉樹分解子模塊;二值形態學操作模塊又可分為二值圖像及其特征提取、二值形態學基本運算、基于對象的操作、形態學應用子模塊;圖像分析模塊又可分為像素提取、圖像輪廓圖、強度描述圖、繪制直方圖子模塊。
系統中包含眾多數字圖像處理的模塊,針對數字圖像處理不同方面知識點的學習,都有相應的模塊與之對應,對于數字圖像處理的學習有很大的促進作用。

圖4 系統主界面
其中以LoG檢測算子為例。該算法首先對圖像做高斯濾波,然后再求其拉普拉斯二階導數。即圖像與高斯函數的拉普拉斯算子進行濾波運算。最后,通過檢測濾波結果的零交叉可以獲得圖像或物體的邊緣[5]。考慮高斯函數:

其中σ是標準差。這是平滑函數,如果和圖像卷積,將會使圖像變得模糊。模糊的程度由σ的值來決定。這個函數的拉普拉斯算法是:


出于明顯的原因,這個函數被稱為LoG。因為求二階導數是線性操作,所以用?2G(x,y)卷積這幅圖像與先用平滑函數對圖像卷積,再對結果進行拉普拉斯計算的結果是一樣的,這是LoG檢測算子的關鍵概念[6]。圖5為LoG算子檢測效果圖。
在MATLAB中提供了豐富的圖像處理函數,同時利用GUI人機友好交互的特性,設計出了基于GUI用戶交互界面的數字圖形處理仿真系統,系統可進行算法的快速演示和圖像處理算法的在線仿真。其集成的圖形用戶界面包含了窗口菜單,對話框,按鈕和文本等各種控件,為用戶提供了極大的便利。該系統具有很大的完善空間,用戶可以及時反饋建議,來進一步滿足用戶的需要。另外,該系統可以作為數字圖像處理課程的教學系統,為初學者的學習提供幫助以及推動教學質量和進度。

圖5 LoG算子檢測效果圖