金昊
引言:隨著當(dāng)前計(jì)算機(jī)技術(shù)不斷發(fā)展和成熟,運(yùn)用現(xiàn)代科技進(jìn)行圖像處理變得越來越頻繁。但是在圖像處理過程中,圖像中的寬度和高度不能夠均是2的整數(shù)次冪,那么這就需要通過一種計(jì)算技術(shù)來使得其高度和寬度變成2的整數(shù)次冪,這就是我們所說的補(bǔ)零DFT,通過此種方法來解決二維圖像中數(shù)據(jù)長(zhǎng)度不等于2的整數(shù)次冪的問題。本文針對(duì)補(bǔ)零DFT在圖像處理中的應(yīng)用情況進(jìn)行研究,為實(shí)現(xiàn)圖像處理合理化打下基礎(chǔ)。
離散傅立葉變換(DFT)一直在數(shù)字信號(hào)處理領(lǐng)域中占據(jù)著非常重要的位置,即使科技快速發(fā)展,各種數(shù)字理論不斷涌現(xiàn),也難以磨滅其成為很多數(shù)字信號(hào)處理系統(tǒng)的基礎(chǔ)。隨著DFT理論不斷發(fā)展和完善,傅立葉變換算法將N點(diǎn)DFT的乘法計(jì)算量從N2直接降低為N/2log2N次,而在實(shí)際的圖像處理過程中,其長(zhǎng)度遠(yuǎn)遠(yuǎn)不能夠滿足這一要求,因此在所需要處理的數(shù)據(jù)后面進(jìn)行補(bǔ)零,可以達(dá)到原來長(zhǎng)度的2整次冪倍,這樣在不改變其實(shí)際長(zhǎng)度的情況下增加數(shù)據(jù)的長(zhǎng)度,如此處理對(duì)于結(jié)果其本身沒有很大的差異,而使用FFT算法可以有效的提高數(shù)據(jù)的處理速度和分析效率[1]。
一、理論相關(guān)分析
(一)一維離散信號(hào)傅立葉變換
若一個(gè)一維長(zhǎng)度為N的序列,x(n)={x0,x1,···xn-1}傅里葉,將其定義為:
我們?cè)谶M(jìn)行討論長(zhǎng)度的時(shí)候以N不被2的整次冪情況,如果N不是2的整次冪,那么就必然存在著一個(gè)正整數(shù)r使得r2-1 (二)二維離散信號(hào)傅立葉變換 引入二維傅立葉變換,其主要是在處理數(shù)字圖像中進(jìn)行頻譜研究,并且將其作為傅立葉變換進(jìn)行推廣,二維傅立葉變化定義為: 二維的DFT這種可分離性為我們提供了計(jì)算二維DFT的方法,當(dāng)然這也是二維傅立葉變換運(yùn)算分解為垂直方向和水平方向上的兩次以為DFT計(jì)算,不滿足條件要求的點(diǎn)可以進(jìn)行補(bǔ)零,使得其均能夠滿足2的整次冪[3]。 二、程序設(shè)計(jì) 對(duì)于獲取到的數(shù)字圖像,在計(jì)算機(jī)中的保存形式是以多維圖文件形式保存,具體的保存順序如下:先是位圖文件頭BITMAPFILEHEADER到位圖信息頭BITMAPINFOHEADER,然后到調(diào)色板RGBQUAD,最后到圖像數(shù)據(jù)[4]。 我們采用的Visual C是一種基于面向?qū)ο蟮木幊坦ぞ?,其特點(diǎn)是可視化、基于類、面向?qū)ο蟮取?duì)圖像進(jìn)行處理時(shí),必須需要開發(fā)的軟件具備基本的處理功能,該功能由類CBitmap_dib來實(shí)現(xiàn),類CBitmap_dib對(duì)圖像的讀取和存儲(chǔ)流程如下圖所示: 利用類CBitmap_dib可以對(duì)圖像進(jìn)行二維離散快速傅里葉變換,其具體的操作步驟為以下幾個(gè)方面: 1、首先是獲得原未處理圖像數(shù)據(jù)區(qū)的首地址pBitmapData以及圖像高度和寬度; 2、計(jì)算出采用傅里葉變換的圖像高度與寬度,然后對(duì)圖像的高度與寬度進(jìn)行判斷,為了計(jì)算方便,先將圖像高度和寬度擴(kuò)展為同一數(shù)值,如果判斷的高度和寬度都不為2的整數(shù)次冪,那么需要對(duì)圖像的垂直與水平方向補(bǔ)0,促使其為2的整數(shù)次冪; 3、按照行列的順序讀取數(shù)據(jù)區(qū)中的值,將讀取的值存儲(chǔ)到復(fù)數(shù)存儲(chǔ)區(qū)f中; 4、將復(fù)數(shù)存儲(chǔ)區(qū)中的值按照行方向統(tǒng)一調(diào)用一維FFT函數(shù),得到的數(shù)據(jù)存儲(chǔ)在復(fù)數(shù)存儲(chǔ)區(qū)t中; 5、將復(fù)數(shù)存儲(chǔ)去t中的數(shù)據(jù)按照列方向統(tǒng)一調(diào)用一維FFT函數(shù),得到的數(shù)據(jù)存儲(chǔ)在復(fù)數(shù)存儲(chǔ)區(qū)f中; 6、將整個(gè)得到的變換后的數(shù)據(jù)轉(zhuǎn)化為圖像數(shù)據(jù),并顯示出來。 三、處理結(jié)果 我們?cè)趯?duì)限制長(zhǎng)度序列的后面進(jìn)行補(bǔ)零,其實(shí)質(zhì)并未改變其有效長(zhǎng)度,同時(shí)也沒有改變所需要處理的數(shù)據(jù)信息,而是通過補(bǔ)零方法來提高DFT的分辨率,但是其沒有改變信號(hào)頻譜的分辨率[5]。根據(jù)序列的補(bǔ)零操作,使得序列的長(zhǎng)度呈現(xiàn)2的整次冪倍數(shù),此時(shí)則可以使用FFT算法來提高其分辨率。實(shí)際的數(shù)字圖像處理過程中,不僅降低了整個(gè)補(bǔ)零操作的計(jì)算難度,而且還有效的提升了計(jì)算的速度,實(shí)際運(yùn)算過程中將要避免數(shù)字圖像處理過程中序列長(zhǎng)度必須以2的整次冪作為標(biāo)準(zhǔn)的限制。計(jì)算的過程中根據(jù)傅立葉的變化高度和寬度來對(duì)圖像的數(shù)據(jù)進(jìn)行判定,即使高度和寬度之間的不是2的整次冪,可以通過補(bǔ)零方法來使得其符合計(jì)算的要求,從而實(shí)現(xiàn)計(jì)算過程中將寬度和高度擴(kuò)展為一定的數(shù)值,使得其滿足計(jì)算的標(biāo)準(zhǔn)。本次研究主要是基于VC程序設(shè)計(jì),結(jié)合了兩種FFT計(jì)算方法,將補(bǔ)零DFT應(yīng)用于數(shù)字圖像的處理之中,從而將傳統(tǒng)的以2整次冪為標(biāo)準(zhǔn)的數(shù)據(jù)圖像處理進(jìn)行了改進(jìn),使得一些不是2整次冪的數(shù)據(jù)圖像進(jìn)行補(bǔ)零,然后再進(jìn)行計(jì)算,通過DFT補(bǔ)零方法改進(jìn)了圖像處理的傳統(tǒng)路徑,應(yīng)用新型計(jì)算方法結(jié)合計(jì)算機(jī)VC計(jì)算進(jìn)行運(yùn)算,為圖像處理提供重要保障。 結(jié)束語 隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,對(duì)于數(shù)據(jù)圖像處理也獲得了極大的進(jìn)步,傳統(tǒng)的數(shù)據(jù)圖像處理多以高寬為2的整次冪為基礎(chǔ)。但是隨著數(shù)字時(shí)代的來臨,圖像處理上出現(xiàn)了很多不是以2的整次冪的標(biāo)準(zhǔn)圖像,這就需要跳出傳統(tǒng)數(shù)據(jù)圖像處理的限制,尋求滿足于非2整次冪的圖像處理。因此補(bǔ)零DFT算法在這類非2整次冪的圖像處理上得到了很好的應(yīng)用。通過本文的研究,希望能夠?yàn)檠芯垦a(bǔ)零DFT在數(shù)據(jù)圖像上的應(yīng)用相關(guān)人員提供借鑒。 參考文獻(xiàn) [1]李亞平.VC與MATLAB的混合編程在圖像處理中的應(yīng)用[J].電腦知識(shí)與技術(shù),2011,24:6010-6012. [2]唐蘇湘.圖像處理常用軟件的比較與應(yīng)用[J].四川兵工學(xué)報(bào),2009,05:140-141+144. [3]陳凱.基于競(jìng)選算法的圖像匹配的研究及應(yīng)用[D].廣東工業(yè)大學(xué),2014. [4]高艷紅.圖和數(shù)學(xué)形態(tài)學(xué)在圖像預(yù)處理中的應(yīng)用研究[D].西安電子科技大學(xué),2014. (作者單位:南京總參第六十研究所)