劉雙紅,靳 鴻
(1.中北大學(xué)電子測試技術(shù)國家重點實驗室, 山西太原 030051;2.中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室,山西太原 030051)
圖像作為對客觀物體一種相似性的生動模仿或描述,既反映物體的客觀存在,又能夠體現(xiàn)人的心理因素。圖像處理的目的是通過對圖像信息進(jìn)行加工處理和分析,以滿足人的視覺、心理需要和某種目的的要求。圖像處理跨學(xué)科、跨行業(yè)的特性,與數(shù)學(xué)、計算機科學(xué)等許多學(xué)科都起到相互輔助借鑒的作用,是一個十分活躍的邊緣學(xué)科[1]。
近年來,出現(xiàn)了一些圖像處理的新方法,比如小波變換。小波變換是在傅里葉分析的基礎(chǔ)上發(fā)展來的,但傅里葉變換丟失了時域和頻域的聯(lián)系,而小波變換可以把時域和頻域聯(lián)系起來,故在分析非穩(wěn)定信號時小波變換更具有優(yōu)勢。一般,人們多運用MATLAB對小波進(jìn)行構(gòu)造處理,但人們在調(diào)用的過程中,往往忽略對底層函數(shù)的理解,阻礙了小波的進(jìn)一步發(fā)展。基于這一弊端,本設(shè)計使用VC程序?qū)D像小波變換進(jìn)行編程,改進(jìn)了在MATLAB中不足之處。
小波分析的理論是在原子分解和無條件基等理論基礎(chǔ)上發(fā)展來的。小波基的發(fā)現(xiàn)及多分辨率的研究推動了小波的進(jìn)一步發(fā)展。小波變換與傅里葉變換相比,小波變換是局網(wǎng)域變換,經(jīng)過伸縮和平移等運算后對函數(shù)或信號進(jìn)行多尺度分析,可以有效地從信號中提取信息,解決了傅里葉變換的缺陷,是調(diào)和分析發(fā)展史上一大跨越式的進(jìn)步[2]。由于小波變換可以分析不平穩(wěn)信號,圖像經(jīng)過小波變換后,分割成高低兩個頻段。低頻顯示圖像的基本特性, 高頻部分顯示細(xì)節(jié)方面的特性,有效地解決了傅氏變換在處理非平穩(wěn)的復(fù)雜圖像信號時所存在的局限性[3]。
離散小波變換能為信號分析與合成提供足夠的信息,同時降低計算機的資源消耗與計算量。對于一維信號的小波變換,需要首先通過卷積運算完成信號的濾波,將信號分解為信號的初級估計近似和信號的細(xì)節(jié)信息,然后在不同的頻帶上利用不同的尺度因子對信號進(jìn)行處理[4]。對于二維信號,相當(dāng)于對其在列和行上進(jìn)行一維小波變換,而對于圖像的處理就是對二維信號的處理。
在實際編程中,人們一般采用離散小波變換的快速算法——Mallat算法,以提高計算速度及其使用程度,這種算法是基于圖像分解和重構(gòu)的塔式算法產(chǎn)生的。一般的二維信號Mallat算法為:在第一層上,先用低通濾波器和高通濾波器分別與信號的每行進(jìn)行積分,并且只取偶數(shù)行。然后,用這個已得的矩陣的每列再和原先的低通和高通濾波器進(jìn)行卷積,同樣也只取偶數(shù)列,便可得到變換所要求的原先數(shù)組的1/4。Mallat算法分解步驟如圖1所示。
圖1 Mallat算法分解步驟
二維圖像的小波變換主要是應(yīng)用算法的可分離濾波器方法,在實現(xiàn)過程中包括很多的步驟,如圖像數(shù)據(jù)讀取、算法的實現(xiàn)、圖像分解和合成及圖像變換后的實現(xiàn)。實質(zhì)上,小波變換的實現(xiàn)過程只是在不同的層數(shù)上重復(fù)調(diào)用一維小波變換而已。二維小波變換步驟如圖2所示。
圖2 二維小波變換的步驟
由于Matllat算法在VC程序上實現(xiàn)的實質(zhì)是圖像信息與濾波器的函數(shù)的卷積[6],所以,本設(shè)計的核心就是利用VC編程來進(jìn)行卷積運算。在實現(xiàn)過程中,首先要進(jìn)行初始變量的定義,然后利用循環(huán)體對小波進(jìn)行小波變換及逆變換,在進(jìn)入循環(huán)體之前,圖像數(shù)據(jù)用數(shù)組的形式表示出來,然后與既定的濾波器函數(shù)進(jìn)行卷積運算,變換后的數(shù)據(jù)再作為原始參數(shù),重新進(jìn)行運算調(diào)整。小波變換中卷積的流程圖如圖3所示。
圖3 小波變換中卷積的流程圖
核心卷積程序代碼如下:
小波變換的程序?qū)崿F(xiàn)過程要反復(fù)用到卷積運算,故可反復(fù)調(diào)用卷積運算的子程序。小波變換流程圖如圖4所示。
圖4 小波變換流程圖
小波變換的代碼如下:
小波變換在圖像處理中有著突出的優(yōu)勢,它可以方便地改變小波變換所用濾波器的參數(shù)來對圖像進(jìn)行處理[7]。本文在此基礎(chǔ)上作為落腳點,在Visual C++編譯環(huán)境下實現(xiàn)對原始圖像(見圖5)的一層小波變換及復(fù)原(見圖6)和二層小波變換及復(fù)原(見圖7)。
圖5 原始圖像
圖6 一層小波變換及復(fù)原
圖7 二層小波變換及復(fù)原
小波分析在不斷的完善自身的同時,也推動著許多相關(guān)學(xué)科和領(lǐng)域的發(fā)展,使其本身具有多門學(xué)科相互結(jié)合、相互滲透的特點。本文重點介紹了圖像小波變換在VC程序上的實現(xiàn),它克服了仿真環(huán)境中直接利用現(xiàn)成的底層函數(shù)進(jìn)行小波變換不能較好地體現(xiàn)小波變換本身過程的弊端,故運用VC語言來實現(xiàn)小波變換具有一定的現(xiàn)實意義,也只有這樣才能進(jìn)行小波應(yīng)用的更廣泛的研究。
[1]曹青,王保保.基于小波變換的圖像處理算法研究[D].西安,西安電子科技大學(xué),2008.
[2]百度百科.小波分析理論[EB/OL].http://baike.baidu.com/view/62228.htm.
[3]徐俊秒,戚宇林.基于小波變換的圖像處理技術(shù)的研究[J].中國多媒體通信,2009,8:30-32.
[4]劉超,邢曙光,楊曦娥.小波變換VC6.0程序?qū)崿F(xiàn)[J].電腦知識與技術(shù),2010,6(3):615-616,627.
[5]鄒箏,康曉林,袁建洲.Visual C++ 6.0 使用教程[M].北京:電子工業(yè)出版社,2008.
[6]沈飛,卞紅雨.小波變換在圖像處理中的應(yīng)用[D].哈爾濱:哈爾濱工程大學(xué),2009.
[7]劉國慶,林京.基于單層小波變換的自適應(yīng)壓縮感知圖像處理[J].合肥工業(yè)大學(xué)學(xué)報,2012 35(1):141-143.