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