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