劉 煬,石文瑩,石鴿婭,王 靜,湯傳玲
(合肥工業(yè)大學(xué),安徽 合肥230009)
圖像邊緣是圖像識(shí)別和計(jì)算機(jī)分析的關(guān)鍵信息。邊緣蘊(yùn)含了豐富的內(nèi)在信息,是圖像識(shí)別中抽取圖像特征的重要屬性。本質(zhì)上說(shuō),圖像邊緣是圖像局部特性不連續(xù)性的反映,它標(biāo)志著一個(gè)區(qū)域的終結(jié)和另一個(gè)區(qū)域的開(kāi)始。邊緣提取首先檢出圖像局部特性的不連續(xù)性,然后再將這些不連續(xù)的邊緣像素連成完備的邊界。邊緣的特性是沿邊緣走向的像素變化平緩,而垂直于邊緣方向的像素變化劇烈。從這個(gè)意義上說(shuō),提取邊緣的算法就是檢出符合邊緣特性的邊緣像素的數(shù)學(xué)算子。
目前提取邊緣常采用邊緣算子法、內(nèi)邊界檢測(cè)、圖搜索策略、曲面擬合法、模板匹配法和門限化等方法。
在圖像分析中,邊緣一般用于尋找區(qū)域的邊界。假定區(qū)域具有均勻的亮度,其邊界就是圖像函數(shù)變化的位置,因此,在理想情況下,具有高邊緣幅值的像素中沒(méi)有噪聲,可見(jiàn)邊界與其組件(邊緣)的梯度方向垂直。
檢測(cè)小局部鄰域的單個(gè)梯度算子事實(shí)上是卷積,可以用卷積掩模來(lái)表達(dá)。能夠檢測(cè)邊緣方向的算子是用一組掩模來(lái)表達(dá)的,每個(gè)掩模對(duì)應(yīng)一個(gè)方向。
Roberts算子是最古老的算子之一,由于它只使用了當(dāng)前像素的2×2鄰域,因此計(jì)算非常簡(jiǎn)單。Roberts算子的卷積掩模為:
邊緣的幅值計(jì)算為:
Roberts算子的主要缺點(diǎn)是對(duì)噪聲高度敏感,因?yàn)樗鼉H使用了很少幾個(gè)像素來(lái)近似梯度。
Laplace算子▽2是近似只給出梯度幅值的二階導(dǎo)數(shù)的流行方法,Laplacian在數(shù)字圖像中用卷積和來(lái)近似。通常使用3×3來(lái)掩模h,對(duì)于4-鄰接和8-鄰接的鄰域分別定義為:
Laplace算子的缺點(diǎn)是它對(duì)圖像中的某些邊緣產(chǎn)生雙重響應(yīng)。
近似圖像函數(shù)一階導(dǎo)數(shù)的算子由于具有確定梯度方向的能力,有時(shí)被稱作羅盤算子。對(duì)于每個(gè)算子,給出前面3×3掩模,其他可以通過(guò)簡(jiǎn)單旋轉(zhuǎn)得到。
梯度方向由具有最大響應(yīng)的掩模給出。對(duì)于以下所有的近似一階導(dǎo)數(shù)的算子也都是如此。
Sobel算子通常用于水平和垂直邊緣的一個(gè)簡(jiǎn)單檢測(cè)子,這時(shí)使用 h1和 h3。 如果 h1的響應(yīng)是 y,h3的響應(yīng)是x,則可以根據(jù)式(6)得出強(qiáng)度:
利用6種邊緣檢測(cè)算子檢測(cè)出的邊緣圖像如圖1所示。從實(shí)驗(yàn)結(jié)果可以看出,Roberts算子檢測(cè)精度不夠,忽略了一部分邊界且有噪點(diǎn);而 Log算子、Canny算子和高斯濾波后的Canny算子檢測(cè)結(jié)果邊界太過(guò)復(fù)雜,將很多背景像素識(shí)別成了邊界;Sobel和Prewitt算子檢測(cè)結(jié)果比較相近,但是Sobel算子檢測(cè)結(jié)果散點(diǎn)較多,相比之下,Prewitt算子檢測(cè)結(jié)果最令人滿意。Prewitt算子檢測(cè)的結(jié)果比另外5種算子的檢測(cè)結(jié)果邊界光滑、完整且散點(diǎn)少,因此本實(shí)驗(yàn)中Prewitt算子的檢測(cè)結(jié)果被認(rèn)為是這幅圖的最優(yōu)邊緣,將它與其他方法得到的邊界比較,從而給出其他算法相對(duì)合理的評(píng)價(jià),如圖2所示。其中,算子檢測(cè)結(jié)果越接近1,效果越好。
內(nèi)邊界跟蹤對(duì)于超過(guò)一個(gè)像素大小的區(qū)域都有效(尋找單像素區(qū)域的邊界毫無(wú)意義)。該算法可以找到區(qū)域的邊界,但是不能找到區(qū)域孔的邊界。如果還要搜索孔的邊界,邊界跟蹤必須在每個(gè)區(qū)域或孔的邊界元素上開(kāi)始,而該元素必須是以前從來(lái)沒(méi)有跟蹤過(guò)的邊界元素。尋找邊界元素搜索總是在當(dāng)前跟蹤的邊界封閉之后才進(jìn)行,而搜索“還沒(méi)有使用”的邊界元素的方法可依照搜索第一個(gè)邊界元素的方式進(jìn)行。需要注意的是,如果物體是單像素寬,就需要增加一些條件;如果目標(biāo)是檢測(cè)區(qū)域的外邊界,所給出的方法根據(jù)4-鄰接仍然可以用。
根據(jù)給定的兩個(gè)起始點(diǎn)和結(jié)束點(diǎn)搜索得到的邊界圖像如圖3所示。因?yàn)閳D像中前景區(qū)域已被定義,所以檢測(cè)出來(lái)的邊界是唯一的。將該邊界與前面Prewitt算子檢測(cè)出的邊緣進(jìn)行比較 (內(nèi)邊界跟蹤圖像÷Prewitt算子邊界圖像),得出評(píng)價(jià)值為2.562 8。內(nèi)邊界跟蹤所得到的圖像的優(yōu)點(diǎn)是沒(méi)有散點(diǎn)且圖像的連續(xù)性好,但是由于算法本身的原因,一部分邊界太粗了,不夠簡(jiǎn)潔。
圖是由一組節(jié)點(diǎn)ni和節(jié)點(diǎn)間的弧(ni,nj)構(gòu)成的一種普通結(jié)構(gòu)??紤]有方向的數(shù)值加權(quán)的弧,這些權(quán)稱為費(fèi)用。邊界檢測(cè)過(guò)程被轉(zhuǎn)換為在加權(quán)圖中搜索最優(yōu)路徑的問(wèn)題,目的是找到連接兩個(gè)指定節(jié)點(diǎn)(即起點(diǎn)和終點(diǎn))的最優(yōu)路徑。該方法同樣適用于搜索費(fèi)用最大化的路徑。
給定回溯路徑的費(fèi)用,或者每步取最優(yōu)路徑搜索,啟發(fā)函數(shù)會(huì)有不同的檢測(cè)范圍,邊界檢測(cè)的結(jié)果當(dāng)然也不同。
(1)啟發(fā)函數(shù) 1
啟發(fā)函數(shù)1是利用灰度圖像灰度差值檢測(cè)實(shí)現(xiàn)的搜索,開(kāi)始節(jié)點(diǎn)與子節(jié)點(diǎn)的灰度差值越小,這個(gè)子節(jié)點(diǎn)越可能是下一個(gè)邊界節(jié)點(diǎn),將這些點(diǎn)連起來(lái)。其定義為:
其中,a、b都是圖像上的點(diǎn),g(x)是圖像上點(diǎn) x的灰度。圖4所示為啟發(fā)函數(shù)1的搜索范圍和檢測(cè)結(jié)果。
(2)啟發(fā)函數(shù) 2
啟發(fā)函數(shù)2是在啟發(fā)函數(shù)1的基礎(chǔ)上增加對(duì)節(jié)點(diǎn)距離判斷來(lái)進(jìn)行的搜索,開(kāi)始節(jié)點(diǎn)與子節(jié)點(diǎn)的距離越近,這個(gè)子節(jié)點(diǎn)越可能是下一個(gè)邊界節(jié)點(diǎn),將這些點(diǎn)連起來(lái)。其定義為:
其中,a、b是圖像上的點(diǎn),g(x)是圖像上點(diǎn) x的灰度,d(x1,x2)是x1、x2兩點(diǎn)之間的距離。圖5所示為啟發(fā)函數(shù)2的搜索范圍和檢測(cè)結(jié)果。
(3)啟發(fā)函數(shù) 3
啟發(fā)函數(shù)3是對(duì)區(qū)域?qū)Ρ榷茸畲笾档呐袛?,它考慮中心點(diǎn)和周圍鄰接點(diǎn)之間的關(guān)系,將當(dāng)前節(jié)點(diǎn)與以節(jié)點(diǎn)為中心的3×3鄰域的灰度總和進(jìn)行比較,對(duì)比度為最大值的作為下一個(gè)節(jié)點(diǎn),繼續(xù)上面操作。其定義為:
其中,Ω′是 3×3 的圖像矩陣鄰域,a 是 Ω′上的點(diǎn),g(x)是圖像上點(diǎn) x的灰度,∑g(x)是 Ω′中所有點(diǎn)的灰度總和。圖6所示為啟發(fā)函數(shù)3的搜索范圍和檢測(cè)結(jié)果。
(4)啟發(fā)函數(shù) 4
啟發(fā)函數(shù)4是對(duì)區(qū)域灰度最大值的判斷,節(jié)點(diǎn)灰度越大越可能是下一個(gè)邊界節(jié)點(diǎn),其定義為:
圖7所示為啟發(fā)函數(shù)4的搜索范圍和檢測(cè)結(jié)果。
(5)啟發(fā)函數(shù) 5
啟發(fā)函數(shù)5是Laplace檢測(cè)子,它檢測(cè)像素是邊緣的可能性,越可能的點(diǎn),回溯路徑的費(fèi)用就越小。其定義為:
其 中 ,a∈L(I3×3),L(I3×3)是 Laplace 檢 測(cè) 子;p(a)是 像 素 a的邊緣概率,p(a)≥thre,thre是給定的閾值,通常給定thre=0.5。圖8所示為啟發(fā)函數(shù)5的搜索范圍和檢測(cè)結(jié)果。
在每種啟發(fā)函數(shù)的檢測(cè)范圍中,將背景顏色設(shè)為0(即深藍(lán)色,見(jiàn)顏色表),起始點(diǎn)顏色設(shè)為 50,對(duì)每個(gè)檢測(cè)范圍進(jìn)行標(biāo)記,下一個(gè)檢測(cè)范圍顏色加1,這樣,可以很直觀地看出啟發(fā)函數(shù)的搜索路徑。將5種啟發(fā)函數(shù)檢測(cè)范圍做比較,很容易發(fā)現(xiàn)啟發(fā)函數(shù)4檢測(cè)的路徑非常明確,而且范圍不大,效率較高。
5種啟發(fā)函數(shù)檢測(cè)范圍的比較如圖9所示,顯然,啟發(fā)函數(shù)4的搜索范圍比其他4個(gè)小很多,它的搜索效率高于其他4個(gè)啟發(fā)函數(shù)。
5種啟發(fā)函數(shù)檢測(cè)精度的比較如圖10所示,啟發(fā)函數(shù)1和啟發(fā)函數(shù)2精度太低,而啟發(fā)函數(shù)3和啟發(fā)函數(shù)5雖然搜索精度也比較高,但是從視覺(jué)上就能發(fā)現(xiàn)其并不是所要的邊界;而啟發(fā)函數(shù)4的搜索精度達(dá)到了0.986 6,并且形狀與原圖非常相近。
本文分別用3種方法對(duì)圖像邊緣檢測(cè)進(jìn)行了實(shí)驗(yàn),其中邊緣檢測(cè)算子是一組用于在亮度函數(shù)中定位變化的非常重要的局部圖像預(yù)處理方法,而邊緣是亮度函數(shù)發(fā)生急劇變化的位置。各邊緣檢測(cè)算子通過(guò)自己特有的卷積掩模與圖像做卷積,得出邊界圖像。在本文的邊緣檢測(cè)算子實(shí)驗(yàn)中,Prewitt算子檢測(cè)結(jié)果最令人滿意。
內(nèi)邊界檢測(cè)是通過(guò)給定起始點(diǎn)和結(jié)束點(diǎn)檢測(cè)二值圖像的,用每次最先找到的相同像素值的節(jié)點(diǎn)將起始點(diǎn)與結(jié)束點(diǎn)連接起來(lái),如此反復(fù),得出邊界圖像。這樣檢測(cè)出的圖像連續(xù)性好,但是會(huì)造成一部分邊界過(guò)粗。
基于圖搜索的邊緣跟蹤是對(duì)每條路徑進(jìn)行判斷并找出最優(yōu)路徑的過(guò)程,而啟發(fā)式搜索在搜索過(guò)程中加入了與問(wèn)題有關(guān)的啟發(fā)性信息,用以指導(dǎo)搜索向著一個(gè)比較小的范圍內(nèi)進(jìn)行,加速獲得結(jié)果。本文實(shí)驗(yàn)中,啟發(fā)函數(shù)4在搜索效率和精度上比其他啟發(fā)函數(shù)更令人滿意。
總體來(lái)說(shuō),各種方法都有其優(yōu)勢(shì)及不足,在實(shí)際應(yīng)用中,需要通過(guò)對(duì)圖像的分析進(jìn)一步選擇合適的算法,以找出最理想的邊界圖像。在實(shí)際操作中,不同的圖像對(duì)啟發(fā)函數(shù)的要求也不一樣,如何找到最合理的啟發(fā)函數(shù)對(duì)圖像進(jìn)行搜索有待研究。
[1]SCHETTINI R.A segmentation algorithm for color images[J].Pattern Recognition Letters,1993(14):499-506.
[2]PRIESE L,REHRMANN V.On hierarchical color segmentation and applications[C].IEEE Proceedings of Computer Vision and Pattern Recognition,1993:633-634.
[3]王耀南,李樹(shù)濤,毛建旭.計(jì)算機(jī)圖像處理與識(shí)別技術(shù)[M].北京:高等教育出版社,2001.
[4]孫慧,周紅霞.圖像處理中邊緣檢測(cè)技術(shù)的研究[J].電腦開(kāi)發(fā)與應(yīng)用,2002,15(10):7-9.
[5]趙雪松,陳淑珍.綜合全局二值化與邊緣檢測(cè)的圖像分割方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2001,13(2):118-121.