基于塊的計(jì)算全息圖二值化算法
為了提高計(jì)算全息圖傳統(tǒng)二值化方法的計(jì)算速度,本文提出了一種基于塊的計(jì)算全息圖二值化方法。從數(shù)值重現(xiàn)和光電重現(xiàn)兩個(gè)方面驗(yàn)證了這種二值化方法的可行性,并與羅曼Ⅲ型編碼重現(xiàn)結(jié)果進(jìn)行比較,比較結(jié)果表明對(duì)相同尺寸原圖計(jì)算其二值化全息圖,本算法耗時(shí)僅為羅曼III 型編碼的1/36。然后分析兩種方法各自的優(yōu)缺點(diǎn),從理論上解釋了影響重現(xiàn)圖像質(zhì)量的原因。結(jié)果表明,與羅曼編碼相比,本文中提出的二值化方法具有運(yùn)算快速、準(zhǔn)確的優(yōu)點(diǎn)。
全息技術(shù)被認(rèn)為是最終的三維顯示技術(shù),因?yàn)樗涗浟巳S物體所有的視差信息,三維視覺(jué)效果逼真。但是由于記錄方法和記錄材質(zhì)的限制,傳統(tǒng)光學(xué)全息并不能實(shí)現(xiàn)實(shí)時(shí)、動(dòng)態(tài)的顯示。上世紀(jì)末隨著計(jì)算機(jī)技術(shù)、數(shù)字多媒體技術(shù)以及顯示技術(shù)的發(fā)展,計(jì)算全息術(shù)與空間光調(diào)制器(Spatial Light Modulator ,SLM)的結(jié)合讓全息視頻成為可能,從而日漸成為研究熱點(diǎn)。
計(jì)算全息術(shù)根據(jù)全息的原理,通過(guò)編碼方法將物體的衍射光波記錄在一個(gè)二維的矩陣中。根據(jù)物光波衍射距離的長(zhǎng)短和編碼方法的不同,計(jì)算全息圖有不同分類。由于物光波只是一個(gè)數(shù)學(xué)上的存在,這個(gè)三維物體可以是真實(shí)的也可以是虛擬的,因此計(jì)算全息術(shù)具有獨(dú)特的優(yōu)點(diǎn)和極大的靈活性。但是全息圖巨大的計(jì)算容量和空間光調(diào)制器分辨率的不足限基金項(xiàng)目:國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863 計(jì)劃)資助項(xiàng)目(2007AA01Z303);高等學(xué)校學(xué)科創(chuàng)新引智計(jì)劃基金資助項(xiàng)目(B07027)限制了計(jì)算全息技術(shù)的發(fā)展。目前,針對(duì)實(shí)時(shí)動(dòng)態(tài)全息顯示,一些快速算法被提出。例如麻省理工學(xué)院空間成像小組的M. Lucente, 提出的特殊衍射算法(diffraction specific),省略了傳統(tǒng)全息圖計(jì)算方法中首先對(duì)物光波衍射的計(jì)算,運(yùn)用逆向思維,提出了基本條紋的新概念,大大提高了計(jì)算速度。日本千葉大學(xué)為了提高運(yùn)算速度,開(kāi)發(fā)了專用集成電路,讓實(shí)時(shí)全息距離現(xiàn)實(shí)更進(jìn)了一步。一般情況下計(jì)算全息圖可以用三種方式重現(xiàn):光學(xué)重現(xiàn),數(shù)值重現(xiàn)以及光電重現(xiàn)。數(shù)值重現(xiàn)和光電重現(xiàn)是本文中實(shí)驗(yàn)的主要方法和手段。光電重現(xiàn)結(jié)合了現(xiàn)代顯示技術(shù)和計(jì)算機(jī)技術(shù),將計(jì)算得到的二維矩陣轉(zhuǎn)換為電壓信號(hào),施加在空間光調(diào)制器上,達(dá)到對(duì)參考光進(jìn)行調(diào)制的目的, LCOS 由于其越來(lái)越小的像素尺寸和高衍射效率而成為光電重現(xiàn)中光調(diào)制器的首選。
LCOS 顯示器件通過(guò)對(duì)入射光偏正方向的調(diào)制來(lái)達(dá)到調(diào)制入射光強(qiáng)度的目的,在調(diào)制過(guò)程中相位并不是一個(gè)常數(shù),它隨著輸出灰度級(jí)的變化而變化。這就給光電重現(xiàn)帶來(lái)制約因素,因?yàn)槿D通常僅僅對(duì)入射光振幅或相位進(jìn)行調(diào)制。目前為了解決液晶空間光調(diào)制器的相位問(wèn)題,一般都是將計(jì)算得到的全息圖二值化,即處理成灰度等級(jí)只有0 和255 的圖片。這樣得到的全息圖因?yàn)橹挥泻?jiǎn)單的兩個(gè)灰度,因此不存在灰度不同引起的相位差,提高了全息圖的抗干擾能力。
為了實(shí)現(xiàn)全息圖的二值化,早在1965年羅曼就相繼提出了羅曼Ⅰ,Ⅱ,Ⅲ型編碼,這種編碼方式得到的全息圖本身就是二值化的。羅曼編碼用待記錄的物光波調(diào)制全息圖中光柵的形狀和位置而不是全息圖的灰度分布,因此它對(duì)像素總數(shù)的要求很高,一般空間光調(diào)制器1024*768的像素?cái)?shù)很難滿足。還有其他的一些編碼,例如Burch編碼中待記錄的物光波調(diào)制的是全息圖的灰度分布,直接計(jì)算得到的是灰度全息圖,為了能對(duì)這樣的全息圖進(jìn)行光電重現(xiàn),必須采用專用的二值化方法。目前將灰度全息圖二值化的方法眾多,主要分成兩種:一種是非迭代算法,例如Floyd and Steinberg首先提出而后被Hauck and Bryngdah用于計(jì)算全息的誤差擴(kuò)散算法(error diffusion),每個(gè)像素的灰度值二值后產(chǎn)生的誤差需要逐個(gè)計(jì)算,對(duì)計(jì)算機(jī)的計(jì)算速度要求很高。另一種是迭代算法,根據(jù)迭代中約束條件的不同,又有很多分類,例如逐步迭代法(interative stepwise)和直接二值搜索法(directbinary search)以及梯度隨機(jī)二值法[16](gradual and random binariation )。逐步迭代法選擇兩個(gè)不同的閾值,每迭代一次按照一定的步長(zhǎng)改變閾值,當(dāng)兩個(gè)閾值正好相等時(shí),退出迭代。直接二值搜索法則在每次迭代中只有一個(gè)閾值。梯度隨機(jī)二值法每次迭代的過(guò)程中被二值化的像素是隨機(jī)的,而且經(jīng)過(guò)二值處理的像素?cái)?shù)目是梯度增加的。迭代法能夠最大限度限制重現(xiàn)圖信息丟失,但是不利于實(shí)時(shí)顯示。為了降低二值化過(guò)程的運(yùn)算量,本文提出一種非迭代的二值化算法。
本文由三部分組成。第一部分介紹羅曼編碼的原理,提出本文的二值化算法。第二部分給出經(jīng)這種算法二值化后得到的全息圖的數(shù)字重現(xiàn)結(jié)果以及與羅曼編碼數(shù)值重現(xiàn)結(jié)果的比較。第三部分給出經(jīng)這種算法二值化后得到的全息圖的光電重現(xiàn)結(jié)果與羅曼Ⅲ型編碼光電重現(xiàn)結(jié)果的比較。最后是本文的結(jié)論。
1、二值化方法的提出
1.1、羅曼Ⅲ型編碼的二值化原理
羅曼根據(jù)不規(guī)則光柵的衍射效應(yīng),提出了迂回位相編碼技術(shù),根據(jù)通光孔的形狀不同產(chǎn)生了3 種羅曼型編碼,即羅曼Ⅰ,Ⅱ,Ⅲ編碼。羅曼Ⅲ編碼相比與其它兩種羅曼型編碼具有精度高的優(yōu)點(diǎn),因此本文中選用羅曼Ⅲ型編碼。圖1是羅曼Ⅲ型編碼的示意圖。虛擬全息底片可以視作正方形小單元的組合,每個(gè)正方形單元中有一個(gè)矩形通光孔,通光孔的寬度一定,一般選擇為L(zhǎng)/2。通光孔高度Amn 由待記錄衍射光波Xm,Yn 處的幅值調(diào)制,最大為L(zhǎng)。因此L 的大小決定可被調(diào)制振幅的級(jí)數(shù)。通光孔的中心到正方形單元中心的偏移量Pmn 由待記錄衍射物光波Xm,Yn 處的相位所調(diào)制,L 大小也決定可被調(diào)制相位的級(jí)數(shù)。L越大,振幅和相位可被調(diào)制的級(jí)數(shù)越多,得到的全息圖越精確。在計(jì)算中,L 一般取2的整數(shù)次方。計(jì)算出所有通光孔的位置和大小,進(jìn)而得到全息圖。這種編碼方式下得到的全息圖采樣點(diǎn)數(shù)是物的采樣點(diǎn)數(shù)的L*L 倍。羅曼編碼的優(yōu)點(diǎn)在于能直接得到二值化的全息圖,缺點(diǎn)在于計(jì)算量巨大,不能實(shí)現(xiàn)實(shí)時(shí)顯。
1.2、基于塊的二值化方法
根據(jù)羅曼編碼的編碼原理,計(jì)算得到的全息圖的像素?cái)?shù)大小將會(huì)是物的像素?cái)?shù)大小的數(shù)倍,要得到計(jì)算精確的全息圖對(duì)計(jì)算機(jī)計(jì)算容量和計(jì)算速度的要求很高,加上空間光調(diào)制器像素?cái)?shù)目的限制,羅曼編碼在現(xiàn)階段并不適合于三維實(shí)時(shí)顯示。Burch 編碼雖然計(jì)算得到的是灰度全息圖,但是全息圖的像素?cái)?shù)目并未增加,因此耗時(shí)相對(duì)于羅曼編碼大大減少 。因此,先通過(guò)Burch 編碼計(jì)算灰度全息圖,再用專門的二值化算法進(jìn)行二值化的方法是可行的。