王艷麗
(曲靖市第二人民醫(yī)院,云南 曲靖 655000)
目前,MATLAB軟件是一種采用普遍的圖片信息處理軟件。其基于MATLAB開展數(shù)字圖像處理專用工具,包含圖形界面設(shè)計(jì)(GUI)的制作和系統(tǒng)的程序編寫。圖形界面設(shè)計(jì)(GUI)是給予人機(jī)互動(dòng)的專用工具和方式。其中GUI是一個(gè)操作界面,包括圖形目標(biāo),如對(duì)話框、圖標(biāo)、菜單欄和文字。當(dāng)這種目標(biāo)以一種模式被挑選或激活時(shí),通常會(huì)觸發(fā)動(dòng)作或轉(zhuǎn)變。一個(gè)設(shè)計(jì)方案優(yōu)良的GUI可以更直觀地讓客戶了解怎樣實(shí)際操作MATLAB頁面,了解設(shè)計(jì)師的開發(fā)設(shè)計(jì)用意。MATLAB的GUI為開發(fā)者給予了一個(gè)不脫離MATLAB的開發(fā)環(huán)境,并且有助于MATLAB程序流程的GUI集成化??梢允归_發(fā)者免去很多繁雜的編碼,簡單化程序流程,此外還可以為管理者設(shè)計(jì)一個(gè)用戶界面,乃至實(shí)現(xiàn)多媒體系統(tǒng)的實(shí)際效果。為此文中基于圖像增強(qiáng)、圖像分割的一些簡單傳統(tǒng)算法,介紹GUI設(shè)計(jì)整個(gè)圖像分割處理界面的操作方法,有利于客戶更好地提高工作效率。
紅外圖像增強(qiáng)是數(shù)據(jù)處理的關(guān)鍵信息之一。圖像增強(qiáng)是指根據(jù)特定需要突出顯示圖像中的某些信息,同時(shí)弱化或刪除多余信息。文中基于空域方法的理論,闡述了領(lǐng)域均值、拉普拉斯算子、均值濾波等圖像增強(qiáng)的優(yōu)化算法。
領(lǐng)域均值法是一種局部空間域優(yōu)化算法。該算法的主要做法是將每個(gè)像素的灰度值替換為多個(gè)像素的平均灰度值。假設(shè)圖像f(x,y)是二維數(shù)組N*N,平滑圖像g(x,y)的計(jì)算如下:
式中x,y=1,2,…,N-1;S是(x,y)鄰域內(nèi)點(diǎn)的坐標(biāo)結(jié)合[不包括點(diǎn)(x,y)],M是S中坐標(biāo)點(diǎn)的總數(shù)。
此種算法簡單快速,但主要缺點(diǎn)是會(huì)削弱噪聲和圖像模糊度,尤其是在邊緣和關(guān)鍵點(diǎn)。鄰域越大,圖像越模糊。如果某些點(diǎn)的灰度值與相鄰點(diǎn)的平均值之間的距離過大,則一定是噪聲。因此,以鄰域平均值作為該點(diǎn)的灰度值具有良好的平滑實(shí)用效果。
拉普拉斯算法是各向同性微分算子最簡單的旋轉(zhuǎn)變量。二維圖像函數(shù)公式f(x,y)的拉普拉斯變換是各向同性二階導(dǎo)數(shù)的計(jì)算如下:
為了更好地適應(yīng)數(shù)據(jù)圖像處理,其方程式以離散變量如式(3):
如圖1所示,當(dāng)一個(gè)閃光點(diǎn)發(fā)生在圖像較暗的區(qū)域時(shí),拉普拉斯計(jì)算使這一閃光點(diǎn)變得越來越亮。由于圖像的邊緣是一個(gè)灰度振蕩區(qū)域,拉普拉斯的動(dòng)態(tài)模糊模板在檢測邊緣時(shí)非常有效。對(duì)于銳邊和緩慢過渡的邊緣,使用一般的技術(shù)很難確定邊緣線的位置,但此種類型的算法可以根據(jù)平方微分的正負(fù)頂點(diǎn)之間的零交點(diǎn)來確定。由于對(duì)孤立點(diǎn)或節(jié)點(diǎn)特別敏感,因此在圖像中突出顯示孤立點(diǎn)、獨(dú)立線和相應(yīng)的節(jié)點(diǎn)非常方便。此外,拉普拉斯算法還可以改善圖像噪聲。
圖1 拉普拉斯模板
由于拉普拉斯算法是一種微分算子,它的應(yīng)用可以改善灰度變換強(qiáng)烈的區(qū)域,削弱灰度變換緩慢的區(qū)域。因此,在整個(gè)銳化過程中(增加飽和度),可以選擇拉普拉斯優(yōu)化算法對(duì)初始圖像進(jìn)行處理,以形成描述模具級(jí)別突然變化的圖像,然后將拉普拉斯圖像和原始圖像可以累積以生成銳化圖像。這種簡單的銳化方法不僅可以達(dá)到拉普拉斯銳化的實(shí)際效果,而且可以保留背景信息的內(nèi)容。
中值濾波器也是空間域中一種典型的低通濾波器。其目的是在保留圖像邊緣的同時(shí)去除噪聲。中值濾波的原理是將數(shù)據(jù)圖像或數(shù)字編碼中的點(diǎn)值替換為該字段中每個(gè)點(diǎn)的平均值。中值過濾定義如下:
一組數(shù)x1,x2,x3……xn把各數(shù)值的大小順序排列如下:
中值濾波對(duì)單脈沖效應(yīng)和噪聲有很好的控制效果,可以抑制任意噪聲,合理降低邊緣模糊度。但是,它不適用于具有許多關(guān)鍵點(diǎn)(例如點(diǎn)和線)的圖像。
圖像分割是一個(gè)技術(shù)性的、綜合性的過程,在這個(gè)過程中將圖像分割成若干具有鮮明特征的特殊區(qū)域,并獲取感興趣對(duì)象不同的特殊區(qū)域。這些特征可以是灰度、顏色和紋理等采集目標(biāo);可以是對(duì)應(yīng)的一個(gè)或多個(gè)區(qū)域。本文主要以一階微分、索貝爾、邊緣檢測等多種算子進(jìn)行詳細(xì)概述。
針對(duì)數(shù)字圖像處理{f (i,j)}的每一個(gè)清晰度,應(yīng)檢查數(shù)字圖像處理前后左右相鄰點(diǎn)灰度權(quán)重計(jì)算的差異,并且其附近相鄰點(diǎn)的權(quán)重值相對(duì)較大。因此,索貝爾算子的運(yùn)算符定義如下:
取適合的閾值TH并區(qū)分如下:s(i,j)>TH,(i, j)為階躍狀邊緣點(diǎn),s(i,j)}是邊緣圖像。
索貝爾邊緣檢測器不僅具有很好的邊緣檢測效果,而且受噪聲影響較小。當(dāng)應(yīng)用于大規(guī)模應(yīng)用時(shí),抗噪性能更好,但計(jì)算量增加,產(chǎn)生的邊緣會(huì)更粗糙。
一階微分算子是邊緣模型算子。該算子模板由理想化邊緣子圖像組成。邊緣模板用于識(shí)別圖像和檢測區(qū)域之間最相似的模板,以獲得最大值。將最大值作為算子的輸出值P(i,j),然后可以檢測邊緣的銳度。定義一階微分邊緣檢測算子模板如圖2所示。
圖2 一階微分邊緣檢測算子模板
邊緣檢測方法是基于高斯函數(shù)的一階微分,能在噪聲抑制和邊緣檢測之間取得良好的平衡。邊緣檢測的實(shí)現(xiàn)步驟如下:
(1)采用高斯濾波對(duì)圖像進(jìn)行平滑處理;
(2)采用一階導(dǎo)數(shù)有限差分法計(jì)算梯度的大小和方向;
(3)不是梯度振幅的最大衰減抑制;
(4)檢測并連接邊緣。
(1)首先在MATLAB中點(diǎn)擊“文件→新建→GUI”,啟動(dòng)主布局設(shè)計(jì)器。
(2)在版面設(shè)計(jì)器中添加必要的控件,根據(jù)設(shè)計(jì)需要添加3個(gè)靜態(tài)文本(Static Text)、2個(gè)坐標(biāo)軸控件(Axes)、2個(gè)按鈕組控件(button group)和11個(gè)按鈕(Push Button)。新增調(diào)整后界面如圖3所示。
圖3 加入控件的最初界面
(3)添加控件后,根據(jù)設(shè)計(jì)中實(shí)現(xiàn)的功能雙擊每個(gè)控件,打開屬性編輯器以更改每個(gè)控件的屬性。通常,需要更改String的屬性以顯示控件的特定功能。Tag是控件的表示形式,fontange、Fontsize等是字體屬性,可以根據(jù)需要更改其他屬性。最后,拖動(dòng)控件以調(diào)整其位置和大小,以達(dá)到美觀。例如,第一個(gè)靜態(tài)文本的string屬性更改為“紅外圖像分割處理軟件”,fontsize設(shè)置為15.0,Tag更改為“hongwaituxangfengechuliruanjian”,其他控件應(yīng)根據(jù)具體需要以同樣的方式設(shè)置,以滿足特定的需求。每個(gè)控件設(shè)置屬性后的圖片如圖4所示。
圖4 設(shè)置控件屬性后的界面
(4)使用菜單編輯器(Menu Editor)打開、保存和退出文件。在Layout Designer中,單擊菜單編輯器圖標(biāo)以打開菜單編輯器并創(chuàng)建新菜單,如圖5所示。
圖5 菜單設(shè)計(jì)器
(5)如圖5所示,增加了主菜單。屬性編輯器顯示在右側(cè)。將Label屬性更改為“文件”,將Tag屬性更改為“文件”。然后在“文件”菜單中添加子菜單以打開、保存和退出。
在界面設(shè)計(jì)器上選中要實(shí)現(xiàn)功能的按鈕,右鍵點(diǎn)擊,在彈出窗口中選擇“View Callbacks→Callback”,打開m文件編輯器,將相應(yīng)的m代碼添加到文件編輯器并保存。該文件可以通過editor進(jìn)行調(diào)試。
用上述的界面對(duì)紅外圖像進(jìn)行分割處理?;诓煌椒▽?duì)紅外圖像進(jìn)行預(yù)處理后的結(jié)果如圖6所示。
圖6 圖像增強(qiáng)前后的圖像
在圖8中,鄰域平均后的圖像效果與原始圖像相比變得略微模糊;拉普拉斯算子處理后的圖像效果最差,只增加黑暗區(qū)域而模糊其他區(qū)域;中值濾波對(duì)圖像細(xì)節(jié)的改善效果不是很好。總的來說,直方圖均衡化更好。圖片細(xì)節(jié)邊緣明顯改善,圖片清晰。因此,采用直方圖均衡化后的圖像來分割的效果更好。
如圖7所示,分別通過3種算子對(duì)直方圖均衡化后的圖像進(jìn)行分割處理后的結(jié)果表明:
圖7 分割處理前后的圖像
(1)索貝爾算子在灰度梯度和噪聲圖像處理中有很好的效果,邊緣更精確。
(2)一階微分算子在處理灰度梯度較高、噪聲較高的圖像時(shí)效果良好。
(3)邊緣檢測算子不易受到噪聲干擾,可檢測到弱邊緣。
與上述3種方法相比,邊緣檢測算子最適合紅外圖像的分割。它可以檢測不受噪聲干擾的微弱信號(hào)。特別是當(dāng)檢測到微弱信號(hào)和不平整的背景起伏干擾時(shí),可以避開紅外圖像中被紅外技術(shù)檢測到看起來像低對(duì)比度的目標(biāo)。
綜上,一般常規(guī)的MATLAB只能實(shí)現(xiàn)如數(shù)據(jù)分析、解方程等比較單一的功能。其實(shí)MATLAB中有許多圖像處理的函數(shù),通過這些函數(shù)可以很方便地對(duì)圖像進(jìn)行分析處理,而且這些函數(shù)的調(diào)用程序也相對(duì)簡便一些。通過MATLAB中的圖形界面設(shè)計(jì)添加MATLAB中許多函數(shù)可以做出功能強(qiáng)大的處理軟件,在做界面時(shí)可以使用m文件添加控件和使用GUIDE工具。通過GUIDE做紅外圖像分割處理界面,以實(shí)現(xiàn)各種控件、屬性編輯器、菜單編輯器。