張文翔 董宏林
(南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 210094)
隨著社會(huì)的不斷進(jìn)步與發(fā)展,計(jì)算機(jī)視覺系統(tǒng)的應(yīng)用越來越多。尤其在安防監(jiān)控和工業(yè)自動(dòng)化領(lǐng)域,為了滿足不同的需求,需要對(duì)獲得的圖像進(jìn)行畸變矯正和縮放。
目前,因攝像機(jī)鏡頭加工誤差導(dǎo)致的圖像畸變的矯正方法主要有兩大類,即基于控制對(duì)象的方法和基于模式的方法[1],這兩種方法都是先求得攝像機(jī)鏡頭的畸變系數(shù),然后進(jìn)行圖像插值[2~6];在圖像縮放過程中,圖像插值算法會(huì)直接影響獲得圖像的質(zhì)量。因此圖像插值算法的選擇是至關(guān)重要的。為了使插值后的圖像不產(chǎn)生邊緣模糊和鋸齒效應(yīng),且在保證圖像質(zhì)量的同時(shí)滿足實(shí)時(shí)性的需求,研究學(xué)者們一直致力于圖像插值算法的研究。現(xiàn)在提出的各種圖像插值算法主要分為線性圖像插值方法和非線性圖像插值方法[7],一般都要根據(jù)應(yīng)用場(chǎng)合的不同來選擇合適的插值算法。
本文提出一種基于OTSU 的圖像插值方法。該方法通過判斷待插值點(diǎn)周圍四鄰域像素點(diǎn)的方差值來確定該點(diǎn)的歸屬,對(duì)不同部分采用不同的插值算法進(jìn)行像素點(diǎn)插值,針對(duì)圖像劃分中閾值的選擇,采用OTSU 算法尋找全局最佳閾值。實(shí)驗(yàn)結(jié)果顯示,該算法很好地保留了圖像紋理細(xì)節(jié)部分,得到的圖像質(zhì)量較高,且算法時(shí)間復(fù)雜度較低。
最鄰近插值、雙線性插值和雙三次插值是最常用的傳統(tǒng)線性插值算法[7,8]。最鄰近插值算法得到的圖像會(huì)產(chǎn)生塊效應(yīng),因而此方法并不常用。下面介紹雙線性插值和雙三次插值。
雙線性插值算法原理是待插值點(diǎn)像素值取原圖像中與其相鄰的4 個(gè)點(diǎn)像素值的水平、垂直兩個(gè)方向上的線性內(nèi)插,插值權(quán)重為待插點(diǎn)到四鄰域像素點(diǎn)的距離。其插值公式如式(1)。
式中f為像素點(diǎn)的像素值,u,v是像素點(diǎn)間距離。
該算法沒有考慮相鄰像素點(diǎn)間灰度值變化率的影響,會(huì)造成圖像模糊。
雙三次插值算法[9]是對(duì)雙線性插值算法的改進(jìn),其原理是利用待插值點(diǎn)周圍4×4鄰域內(nèi)共16個(gè)像素點(diǎn)的像素值估計(jì)該點(diǎn)像素值。其插值公式如式(2)。
式(2)中W(x)是插值核函數(shù),其表達(dá)式如式(3)。
式(3)中a=-0.5。
該算法保留了更多的圖像紋理細(xì)節(jié)部分,但是算法運(yùn)算量巨大,降低了算法效率。
針對(duì)傳統(tǒng)插值算法存在的問題,本文采用分區(qū)域的圖像插值算法[10~11],此類算法把圖像紋理細(xì)節(jié)區(qū)域和平坦區(qū)域區(qū)分開,分別利用不同的插值算法進(jìn)行圖像插值。這一類算法中,主要的研究點(diǎn)在于分割閾值的選擇,當(dāng)前研究學(xué)者提出的閾值確定方法有等值線法[12]、NSCT法[13]、方差法[14]等。在這些方法中,方差法的運(yùn)算量較小,但是閾值是手動(dòng)選取,導(dǎo)致圖像劃分的效果好壞存在偶然性。文中利用OTSU 算法確定閾值。OTSU 算法是一種自適應(yīng)的閾值確定方法,該方法能夠高效且快速的確定閾值。其原理為假設(shè)一幅圖像的大小為M×N,灰度i的像素個(gè)數(shù)為ni,灰度范圍為[0,L-1],于是各灰度值出現(xiàn)的概率為
將圖像中的像素按灰度級(jí)用閾值T 為兩類,即背景C0 和目標(biāo)C1。背景C0 的灰度級(jí)為0~T-1,目標(biāo)C1 的灰度級(jí)為T~L-1。背景C0 和目標(biāo)C1 出現(xiàn)的概率分別為
背景C0和目標(biāo)C1的平均灰度分別為
整幅圖像的平均灰度為
背景與目標(biāo)的類間方差為
令T從0~L-1依次取值,計(jì)算不同T值下的類間方差,使得類間方差最大的那個(gè)T 值就是所求的最佳閾值。
本文提出的算法主要思想是通過OTSU 算法尋找圖像待插值點(diǎn)周圍四鄰域像素點(diǎn)像素值方差的最佳劃分閾值T,如果某點(diǎn)周圍四鄰域像素點(diǎn)的像素值方差小于T,則為平坦區(qū)域,采用雙線性插值,否則采用雙三次插值。該算法流程圖如圖1 所示。
圖1 算法流程圖
選取多幅標(biāo)準(zhǔn)測(cè)試圖進(jìn)行實(shí)驗(yàn),分別對(duì)多幅圖像進(jìn)行兩倍降采樣處理,得到低分辨率圖像。利用本文提出的算法對(duì)低分辨率圖像插值還原,并用雙線性插值算法與雙三次插值算法進(jìn)行對(duì)比實(shí)驗(yàn)。在分析了OTSU 算法原理及根據(jù)實(shí)驗(yàn)數(shù)據(jù)得出,讓方差S 乘上一個(gè)倍數(shù)M 可以使算法對(duì)各類型的圖像均有很好的復(fù)原效果,M 取值在[20,30]之間。本文實(shí)驗(yàn)過程中M=24。實(shí)驗(yàn)使用的計(jì)算機(jī)處理器為Intel Core i5-3317U 1.70GHz,內(nèi)存4GB,算法均使用Matlab R2015b軟件編寫并測(cè)試。
圖2 為L(zhǎng)ena 測(cè)試圖的實(shí)驗(yàn)結(jié)果。從中可以看出,雙線性插值算法得到的圖像存在邊緣模糊和鋸齒現(xiàn)象;雙三次插值算法得到的圖像質(zhì)量明顯提高,沒有產(chǎn)生明顯的模糊和鋸齒現(xiàn)象;本文算法得到的圖像很好地保留了紋理細(xì)節(jié)部分,圖像質(zhì)量較高,主觀視覺效果較好。
圖2 三種算法對(duì)降采樣圖放大效果
為了客觀評(píng)價(jià)算法的優(yōu)越性[15],使用均方誤差(MSE)和特征相似性(FSIM)[16]作為評(píng)價(jià)指標(biāo),同時(shí)計(jì)算出各算法的運(yùn)行時(shí)間。MSE值越小,表示圖像復(fù)原度越高;而FSIM 值越大,說明圖像復(fù)原度越高。表1、表2 和表3 給出了不同算法的MSE 值、FSIM值和運(yùn)算時(shí)間。
表1 三種算法的MSE值
表2 三種算法的FSIM值
表3 三種算法的運(yùn)算時(shí)間
從表1中可以看出,本文算法的MSE 值低于雙線性插值算法和雙三次插值算法;從表2 中可以看出,本文插值算法的FSIM 值高于雙線性插值算法和雙三次插值算法;從表3 中可以看出,本文插值算法的的運(yùn)算時(shí)間低于雙三次插值算法。實(shí)驗(yàn)結(jié)果表明,本文提出的插值算法能夠很好地保留圖像的紋理細(xì)節(jié)部分,總體性能上優(yōu)于雙線性插值算法與雙三次插值算法,既滿足了實(shí)時(shí)性需求,又提高了圖像質(zhì)量。
本文提出了一種基于OTSU 的圖像插值算法,該算法通過計(jì)算圖像待插值點(diǎn)四鄰域像素點(diǎn)像素值的方差判斷該點(diǎn)是否是圖像邊緣位置,利用OTSU 算法快速計(jì)算出方差的分割閾值,對(duì)不同區(qū)域分別采用雙線性插值算法與雙三次插值算法進(jìn)行插值處理。該算法的時(shí)間復(fù)雜度較低,滿足實(shí)時(shí)性的需要,得到的圖像質(zhì)量高,有效地保證了圖像質(zhì)量。本文插值算法提高了圖像處理的效率,有一定的實(shí)用價(jià)值。