厲俊
摘? 要:MATLAB作為算法開發(fā)及數(shù)據(jù)可視化的交互式工具,在數(shù)字圖像處理方面應(yīng)用廣泛,并集成了具有多種算法的圖像處理工具箱。本文基于MATLAB圖像用戶界面(GUI)和圖像處理工具箱設(shè)計實現(xiàn)了一款圖像處理系統(tǒng),該系統(tǒng)可實現(xiàn)圖像的運算、變換、分割、改善、形態(tài)學處理、壓縮編碼等內(nèi)容,并通過綜合實例闡述了本系統(tǒng)在圖像識別中的應(yīng)用,使圖像處理可視化更加直觀,便捷。多次實踐表明,本系統(tǒng)具有良好的實用性、交互性、移植性,易于后期模式識別和機器視覺相關(guān)應(yīng)用的擴展研究。
關(guān)鍵詞:圖像處理系統(tǒng);MATLAB GUI;數(shù)字圖像處理;圖像識別
中圖分類號:TP242? ? ?文獻標識碼:A
Abstract: As an interactive tool for algorithm development and data visualization, MATLAB is widely used in digital image processing and integrates image processing toolbox with different algorithms. Based on Graphical User Interface (GUI) of MATLAB and the image processing toolbox, this paper designs and implements an image processing system, which can realize the operation, transformation, segmentation, improvement, morphological processing, compression and coding of images, and expounds the application of the system in image pattern recognition through a comprehensive example, making the image processing visualization more intuitive and convenient. Many practices show that the system has good practicability, interactivity and portability, and it is also helpful for further research on pattern recognition and machine vision related applications.
Keywords: image processing system; MATLAB GUI; image processing; image pattern recognition
1? ?引言(Introduction)
人類對于外部世界的摸索與感知,獲取信息的83%來自視覺、記憶70%來自交互[1]。大腦對于接收的信息依賴于神經(jīng)網(wǎng)絡(luò)進行目標與面部識別,每一層神經(jīng)元都逐步地對視覺信號進行發(fā)掘處理,以獲取更多信息。而近年來隨著機器視覺的日新月異,其深度神經(jīng)網(wǎng)絡(luò)宏觀結(jié)構(gòu)與人類大腦負責視覺的部分十分類似[2],這項研究展現(xiàn)了利用機器視覺來幫助研究者們擴展人類認知的巨大潛力,而這其中最重要的技術(shù)便是圖像處理技術(shù)。數(shù)字圖像處理是通過計算機對圖像加工、處理,以改善圖像視感質(zhì)量,提取特征信息,對數(shù)據(jù)進行變換、壓縮編碼的過程,該技術(shù)應(yīng)用在人類生活和工作的各個方面,例如生物醫(yī)學、軍事公安、科學可視化等[3]。因此本文基于MATLAB GUI和圖像處理工具箱設(shè)計實現(xiàn)了一款圖像處理系統(tǒng),實現(xiàn)圖像的運算、變換、分割、改善、形態(tài)學處理、壓縮編碼等內(nèi)容,并通過綜合實例闡述了本系統(tǒng)在圖像識別中的應(yīng)用,使圖像處理可視化更加直觀,便捷。
2? ?MATLAB及GUI設(shè)計介紹(MATLAB and GUI design introduction)
MATLAB又稱矩陣實驗室,是一款算法開發(fā)及數(shù)據(jù)可視化的交互式工具,在數(shù)字圖像處理方面應(yīng)用廣泛,并集成了具有多種算法的圖像處理工具箱。它將數(shù)據(jù)可視化、矩陣計算、非線性動態(tài)系統(tǒng)建模及仿真集成在一個交互性強,易于使用的視窗環(huán)境中,大大擺脫了C、Fortran等傳統(tǒng)非交互式編程語言的編輯模式[4],使得編程的可視化和仿真分析更直觀、便捷。
MATLAB GUI稱為圖形用戶界面(Graphical User Interface,簡稱GUI),是以圖形樣式顯示的交互式用戶界面,提供用戶Static Text、Edit Text、Listbox、Slider、Push Button、Toggle Button、Radio Button、Button Group、Check Box、Popup Menu、Axes、Panel十二種圖形控件,通過拖動相應(yīng)的控件,雙擊對其外觀和屬性進行設(shè)置,并編寫回調(diào)函數(shù),即可實現(xiàn)用戶設(shè)計的功能,減少了繁冗復(fù)雜的代碼編譯,視覺及操作上都易于用戶的創(chuàng)建使用。
本文設(shè)計的圖像處理系統(tǒng)涵蓋MATLAB提供的20余類相關(guān)函數(shù),支持灰度圖片、二值圖片、索引圖片等圖片類型,支持PNG、BMP、JPEG、GIF、TIFF等圖像文件格式的顯示,實現(xiàn)了圖像處理的六大基本功能模塊及綜合實例應(yīng)用,直觀地展現(xiàn)了數(shù)字圖像處理的效果。
3? 圖像處理系統(tǒng)的總體設(shè)計(The overall design of the image processing system)
MATLAB工具箱為用戶提供了豐富實用的函數(shù)庫,使得程序編譯簡潔美觀。Image Processing Toolbox支持多種圖像數(shù)據(jù)格式[5],為圖像數(shù)據(jù)分析,圖像細節(jié)獲取提供了有力的支持,涵蓋大部分經(jīng)典的圖像處理函數(shù),結(jié)合GUI可視化界面,讓用戶更直觀地選擇最優(yōu)算法,GUI圖像處理系統(tǒng)總體結(jié)構(gòu)框架如圖1所示。
本系統(tǒng)集成七大模塊:圖像運算、變換、分割、改善、形態(tài)學處理、壓縮編碼及綜合實例,各個模塊包含了各類圖像處理算法,并以相應(yīng)子界面的形式展現(xiàn)在系統(tǒng)中,通過改變子界面中控件的參數(shù),編寫相應(yīng)的回調(diào)函數(shù),可實現(xiàn)界面之間的切換跳轉(zhuǎn)及對應(yīng)功能的實現(xiàn)。
4? 圖像處理系統(tǒng)的界面設(shè)計(Interface design of image processing system)
4.1? ?系統(tǒng)主界面設(shè)計
GUI圖像處理主界面由模塊選擇和系統(tǒng)菜單兩部分組成,包含了按鈕、面板、坐標軸、文本框四種控件,各個按鈕都有相應(yīng)的回調(diào)函數(shù)使得主界面切換至各模塊子界面,GUI圖像處理系統(tǒng)主界面如圖2所示。
4.2? ?系統(tǒng)子界面設(shè)計
本系統(tǒng)設(shè)計了七個模塊的子界面,分別對應(yīng)不同的圖像處理功能,下面分模塊介紹子界面。
(1)圖像運算
圖像運算是以像素點的幅度值為運算單元,圖像處理中最基本的運算,本系統(tǒng)分為點運算、算術(shù)運算、幾何運算和邏輯運算四個部分,子界面中的Axes1顯示原始圖像,Axes2顯示處理后的圖像。當進行圖像運算時,先點擊讀取圖像按鈕,再點擊任一運算按鈕進行處理,否則會彈出msgbox進行引導提示[6],規(guī)范用戶的操作,GUI圖像運算子界面如圖3所示。
(2)圖像變換
圖像變換是為了快速有效地對圖像進行分析處理,所作的二維線性可逆變換,處理中所用的變換都是酋變換,使變換核滿足正交條件[7],更有利于特征提取,圖像增強和壓縮編碼。本系統(tǒng)涉及的變換有二維離散傅里葉變換、二維離散余弦變換、Hough變換核Radon變換等。
以Radon變換為例,為了節(jié)省篇幅,只顯示主要程序:
(3)圖像分割
圖像分割是圖像識別前關(guān)鍵的預(yù)處理,提取出圖像獨特性質(zhì)的區(qū)域或者用戶所要應(yīng)用的部分,比如亮度、顏色、區(qū)域、邊緣等,所涉及的分割算法十分眾多[8]。本系統(tǒng)分閾值、區(qū)域分割、邊緣檢測和直方圖法四個部分來展現(xiàn)不同算法對圖像分割處理的效果,GUI圖像分割子界面如圖4所示。
(4)圖像改善
圖像改善技術(shù)分為圖像增強和圖像復(fù)原,圖像增強是有目的的擴大不同物體之間的差別,增強有用特征,抑制不感興趣的部分,從而豐富圖像信息,改善圖像質(zhì)量,增強識別效果。而圖像復(fù)原是對降質(zhì)圖像進行重構(gòu)恢復(fù)的過程[9]。
因此本系統(tǒng)對于圖像改善分兩個模塊設(shè)計,加入了空間濾波增強、彩色增強、維納濾波復(fù)原、盲解卷積復(fù)原等算法,GUI圖像改善子界面如圖5所示。
(5)圖像形態(tài)學處理
形態(tài)學處理包含了基本運算和組合運算,其實質(zhì)是改變物體形狀,在消除噪聲、特征提取、紋理分析、區(qū)域描述等方面應(yīng)用廣泛[10]。以膨脹為例,圖像膨脹是腐蝕操作的逆運算,類似于“領(lǐng)域擴張”,將圖像中高亮區(qū)域進行擴張以達到去噪的效果,GUI圖像形態(tài)學處理子界面如圖6所示。
(6)圖像壓縮編碼
圖像的壓縮編碼分為有損壓縮和無損壓縮,是在一定保真度的條件下,去除多余數(shù)據(jù),刪除各類冗余信息,減少圖像所需數(shù)據(jù)量的過程,便于圖像的儲存與傳輸,GUI圖像壓縮編碼子界面如圖7所示。
(7)圖像綜合實例
系統(tǒng)最后通過人臉識別、商品識別、文字識別和車牌識別四個綜合實例來闡述圖像處理在實際中的應(yīng)用。
人臉識別:人臉識別技術(shù)是針對人的臉部特征,對采集的人臉圖像進行識別定位的過程,在身份定位和信息安全方面應(yīng)用廣泛,本系統(tǒng)僅能實現(xiàn)人臉圖像采集、人臉識別預(yù)處理和人臉定位的功能,涉及的函數(shù)有regionprops()、PCA()、bwlabel()等[11],為身份確認he身份查找功能奠定了基礎(chǔ)。
商品識別:商品識別過程復(fù)雜,涉及多類算法,本系統(tǒng)暫實現(xiàn)不同商品的區(qū)分,返回對應(yīng)的參數(shù)值,若要實現(xiàn)商品的匹配,輸出商品信息,需與Mysql,SQLServer等數(shù)據(jù)庫進行連接。
文字識別:文字識別是圖像處理應(yīng)用中一個重要的領(lǐng)域,系統(tǒng)對采集的文字圖像進行識別掃描,利用幾何特征抽取法抽取文字的幾何特征,如文字端點、分叉點、凹凸部分、閉合環(huán)路等,并根據(jù)這些特征值進行邏輯組合判斷,從而得出識別結(jié)果。
車牌識別:車牌識別是圖像識別技術(shù)在車輛牌照識別中的又一技術(shù),不僅是車輛管理,電子收費中的一大應(yīng)用,也是融合DSRC技術(shù)識別車輛身份的主要手段[12],本系統(tǒng)通過圖像數(shù)據(jù)讀入、圖像轉(zhuǎn)換、邊緣檢測、腐蝕處理、平滑處理、移除小對象、確定車牌位置、定位剪切、車牌圖像二值化、均值濾波,膨脹或腐蝕處理、切割、分離字符的步驟識別出牌照信息,經(jīng)過實踐證明,識別率高達92.6%。GUI圖像綜合實例子界面如圖8所示。
5? ?結(jié)論(Conclusion)
本文利用MATLAB強大的數(shù)值計算、數(shù)據(jù)分析和圖像處理的能力,基于GUI圖形用戶界面設(shè)計實現(xiàn)了一款圖像處理系統(tǒng),該系統(tǒng)集成七大模塊,可實現(xiàn)圖像的運算、變換、分割、改善、形態(tài)學處理、壓縮編碼等內(nèi)容,涵蓋了數(shù)字圖像處理基礎(chǔ)及進階技術(shù),并通過綜合實例闡述了本系統(tǒng)在圖像識別中的應(yīng)用,使圖像處理可視化更加直觀,便捷。在多次實踐中,系統(tǒng)操作簡單、界面友好、運行穩(wěn)定,具有良好的實用性、交互性、移植性。用戶可以通過自行添加模塊設(shè)置,修改對應(yīng)的參數(shù),編寫回調(diào)函數(shù),即可讓系統(tǒng)發(fā)揮更多的功能操作,讓圖像處理更豐富多彩?,F(xiàn)今,數(shù)字圖像處理呈現(xiàn)出高靈活、廣適用、通用強、高精度的特點,應(yīng)用領(lǐng)域涉及人類生活各個方面,通過設(shè)計這一圖像處理系統(tǒng),不僅為研究人員提供了分析和解決問題的方法思路,在最短的時間內(nèi)選擇最優(yōu)算法,也為后期模式識別和機器視覺相關(guān)應(yīng)用的擴展研究奠定了基礎(chǔ)。