汪陳伍,張崇軍
(1西安郵電學(xué)院通信技術(shù)研究所,西安 710061;2中國兵器工業(yè)第203研究所,西安 710065)
圖像插值在數(shù)字圖像處理中有重要的應(yīng)用,包括圖像縮放、圖像分辨率增強[1]等,應(yīng)用于視頻監(jiān)控、遠程醫(yī)療,以及圖像跟蹤、圖像制導(dǎo)等武器系統(tǒng)方面。傳統(tǒng)的插值算法有最鄰近插值、雙線性插值、三次樣條插值等。傳統(tǒng)插值算法側(cè)重于保持圖像平滑,而損失了圖像邊緣部分的高頻信息,常常導(dǎo)致圖像的邊緣出現(xiàn)模糊和鋸齒等現(xiàn)象[2]。研究表明,人眼對圖像的邊緣部分特別敏感,所以圖像插值后圖像邊緣效果影響著圖像的質(zhì)量。
保持圖像邊緣特征的插值方法[1]是利用邊緣移動匹配法計算各像素點之間的相似程度來尋找邊緣方向,在邊緣方向進行插值。該算法一定程度減少圖像邊緣的鋸齒,但在較為平緩的邊緣仍出現(xiàn)鋸齒。改進的邊沿自適應(yīng)圖像縮放算法[3]是計算圖像中各像素處不同邊沿方向的相關(guān)度,利用模糊度和延續(xù)度進行過濾優(yōu)化,得到最終邊沿進行插值。該算法采用多方向判斷相關(guān)性,邊緣鋸齒得到優(yōu)化,但由于它需要對圖像中每個像素進行相關(guān)度計算,運算量較大,并且參與相關(guān)度計算的像素選取上存在一定的偏向性。在此基礎(chǔ)上,提出一種對稱邊緣最大相關(guān)性(symmetric edge max-relativity,SEMR)的圖像插值算法。
假定原圖像為A(x,y),大小為M×N,縮放后圖像為A′(x′,y′),大小為M′×N′。則x向和y向的縮放比為:scalex=M/M′,scaley=N/N′。為求得A′中坐標(biāo)為(x′,y′)的像素值A(chǔ)′(x′,y′),需計算得到圖A中的對應(yīng)坐標(biāo)為(x0,y0),則:x0=scalex×x′,y0=scaley×y′,由于x0、y0可能不是整數(shù),對其進行取整,x=[x0],y=[y0]。以A(x,y)周邊像素為參照點,根據(jù)插值算法得到A(x0,y0)值,賦值給A′(x′,y′)。
SEMR算法對于邊緣部分和非邊緣部分(圖像平坦區(qū))進行不同的插值方法。在圖像插值前,需要進行圖像的邊緣檢測,取得邊緣信息表。邊緣檢測算法[4]采用Prewitt算子(或Canny算子)實現(xiàn)。對于圖像非邊緣部分(稱為平坦區(qū)),采用雙線性插值,以降低計算復(fù)雜度。對于圖像邊緣部分,根據(jù)相關(guān)性最小準(zhǔn)則確定邊緣方向[5],然后沿邊緣方向進行插值。
已知圖像A的邊緣信息表,并且A(x0,y0)周圍4像素點為A(x,y),A(x+1,y),A(x,y+1),A(x+1,y+1),若4像素點中存在邊緣,則可能需要進行相關(guān)度計算。若Gx>Gy,為垂直邊緣,反之為水平邊緣。若4個像素點中存在且僅存在水平邊緣,則需要進行水平方向相關(guān)度計算;若4個像素點中存在且僅存在垂直邊緣,則需要進行垂直方向相關(guān)度計算。以水平邊緣為例進行對稱多方向相關(guān)度計算,SEMR算法相關(guān)度公式為:
式(1)、式(2)中:A(x,y)為圖像中的第y行第x列像素的灰度值,Wd(α)為第y行向第(y+1)行α方向的相關(guān)度,Wu(β)為第(y+1)行向第y行β方向的相關(guān)度,它們是加權(quán)了的4個水平相鄰像素不同邊緣方向的絕對差的和。C(α)和D(β)是不同方向的加權(quán)系數(shù),分別隨著|α|和|β|的增大而減小,反應(yīng)了像素間的相關(guān)性與像素間距離的一種關(guān)系。E(i)是參與和運算的4個平行方向絕對差的不同權(quán)值,距離A(x0,y0)越遠,權(quán)值越小。由圖1可知,α=n和β=-n(n=-5,-4,…,5)在空間方向是一致的,并且α=β=0時,Wd(0)=Wu(0)。當(dāng)Wd(α)或Wu(β)越小時,表明該方向的相關(guān)性越大,所以目標(biāo)就是找出Wd(α)和Wu(β)中最小值的方向。
文獻[3]方法僅僅計算了Wd(α)[3],參與運算的第(y+1)行像素為14個,多于第y行的4個像素,像素點選取存在一定的偏向性,對判斷結(jié)果就會產(chǎn)生影響。而計算Wu(β)的過程中,參與運算的第(y+1)行像素為4個,而第y行的像素為14個。所以,將Wd(α)和Wu(β)的結(jié)果進行綜合比較,并且考慮E(i)權(quán)值的影響,將能減少噪聲的干擾,使結(jié)果更加準(zhǔn)確。
邊緣方向的確定,需要依靠Wd(α)和Wu(β)兩組相關(guān)性數(shù)據(jù)的比較。由于噪聲的存在,會出現(xiàn)一些假邊緣方向,需要進行剔除。假定γ為邊緣方向,記γ=F(α=n),n∈ [-5,5],可知γ=F(α=n)=F(β=-n)。假定α′為Wd(α)取得最小值的方向,β′為Wu(β)取得最小值的方向,則:
式中:若α′=β′=0,則求得的邊緣方向為垂直方向,對于非垂直方向,若α′=-β′,表明通過Wd(α)和Wu(β)計算出的邊緣方向一致,則γ=F(α=α′)=F(β=β′)為最終邊緣方向。對于第三種情況,即|α′-(-β′)|=1時,表明通過Wd(α)和Wu(β)計算出的邊緣方向存在1單位的差別,則最終邊緣方向需要進行進一步判斷,此時γ的值如下:
若通過Wd(α)和Wu(β)計算出的邊緣方向有1單位以上的差別,表明不存在明確的邊緣方向,認定為噪聲,按照平坦區(qū)插值方法進行插值。
確定存在邊緣方向的邊緣后,就可以進行圖像插值。根據(jù)是否存在邊緣方向,可以將圖像分為平坦區(qū)和邊緣區(qū)兩個部分。對于圖像平坦區(qū)選擇傳統(tǒng)插值算法,比如雙線性插值或三次樣條插值。對于圖像邊緣區(qū)沿邊緣方向進行雙線性插值,原理如圖2所示,圖中以α=-2邊緣方向為例,黑點r、s、t為待插值的目標(biāo)像素點,分別代表著此方向下三種不同的情況。AF、H-M分別為第y行和第y+1行相鄰像素點。對于r點,用平行四邊形EFJK進行雙線性插值;對于s點,平行四邊形DEIJ進行雙線性插值;對于t點,用平行四邊形CDHI進行雙線性插值。
圖2 按邊緣方向插值原理圖
整個算法實現(xiàn)分為以下幾個步驟:
1)采用Prewitt算子對圖像進行邊緣檢測,得到圖像邊緣信息表;
2)由目標(biāo)圖像坐標(biāo)計算,得到原圖像坐標(biāo),與1)中邊緣信息表進行比較,判斷是否處于邊緣;
3)對處于邊緣的像素,需要進行對稱多方向相關(guān)度計算;
4)根據(jù)3)計算結(jié)果,確定是否存在邊緣方向,若存在,則確定邊緣方向;
5)對于存在邊緣方向的像素,按照第1.3節(jié)進行平行四邊形雙線性插值,對于平坦區(qū)圖像采用傳統(tǒng)雙線性插值。
在具體實驗中,計算機配置為Core2Q6600 2.4GCPU,4G內(nèi)存,256M顯存,在matlab7.0編程實現(xiàn),選擇pat圖進行測試。pat圖的大小為128像素×128像素,橫坐標(biāo)和縱坐標(biāo)分別進行4倍放大,即對圖像進行16倍放大。分別利用Cubic方法,文獻[3]方法和SEMR算法進行對比測試,測試效果圖如圖3所示。可以看出,SEMR算法相對于另外2種插值方法,鋸齒和邊緣有一定程度的改善。
圖3 Cubic方法、文獻[3]方法和文中方法對比
文獻[3]方法和SEMR算法運算量對比如表1所示,其中M×N為原圖大小,K×L為放大后圖片大小,W為原圖經(jīng)過邊緣檢測之后存在邊緣的像素個數(shù)。以128像素×128像素pat圖為例,W值為1568,約等于128×128大小的十分之一。當(dāng)然不同的圖像比例不同,處于邊緣像素越少,SEMR算法的運算量相對越小。為了便于對比,兩種算法的圖像平坦區(qū)均采用傳統(tǒng)雙線性插值。
SEMR圖像插值算法將圖像邊緣檢測和像素相關(guān)性計算相結(jié)合,通過對稱的多方向相關(guān)度比較,確定邊緣方向進行插值,有效解決圖像插值后邊緣的鋸齒和模糊現(xiàn)象,相對于以往插值方法,更好抑制了邊緣噪聲,并且一定程度上降低了算法的運行時間,可滿足圖像處理實時性要求。
[1]張俊華,陳建華,王逍.基于邊緣移動匹配法的圖像差值[J].計算機工程與應(yīng)用,2003,39(6):73-75.
[2]HENTSCHEL C.Generic method for 2Dimage resizing with simple,non-separable filters[C]//International Conference on Consumer Electronics IEEE,2003:14-15,17-19.
[3]王效靈,陳濤,汪穎.邊沿自適應(yīng)圖像縮放算法[J].浙江大學(xué)學(xué)報:工學(xué)版,2006,40(9):1507-1510.
[4]劉煜,李言俊,張科.一種多像素圖像邊緣提取方法[J].光子學(xué)報,2007,36(2):380-384.
[5]陳建輝,王博亮,徐中佑.一種自適應(yīng)最大相關(guān)性數(shù)字圖像差值算法[J].廈門大學(xué)學(xué)報:自然科學(xué)版,2005,44(3):355-358.