1. 程式人生 > >一維的Haar小波變換

一維的Haar小波變換

小波變換的基本思想是用一組小波函式或者基函式表示一個函式或者訊號,例如影象訊號。為了理解什麼是小波變換,下面用一個具體的例子來說明小波變換的過程。

1. 求有限訊號的均值和差值

   [例] 假設有一幅解析度只有4個畫素的一維影象,對應的畫素值或者叫做影象位置的係數分別為: 
                  [9  7  3  5]
 計算它的哈爾小波變換系數。

計算步驟如下:
   步驟1:求均值(averaging)。計算相鄰畫素對的平均值,得到一幅解析度比較低的新影象,它的畫素數目變成了2個,即新的影象的解析度是原來的1/2,相應的畫素值為:

            [8 4]

步驟2:求差值(differencing)。很明顯,用2個畫素表示這幅影象時,影象的資訊已經部分丟失。為了能夠從由2個畫素組成的影象重構出由4個畫素組成的原始影象,就需要儲存一些影象的細節係數(detail coefficient),以便在重構時找回丟失的資訊。方法是把畫素對的第一個畫素值減去這個畫素對的平均值,或者使用這個畫素對的差值除以2。在這個例子中,第一個細節係數是(9-8)=1,因為計算得到的平均值是8,它比9小1而比7大1,儲存這個細節係數就可以恢復原始影象的前兩個畫素值。使用同樣的方法,第二個細節係數是(3-4)=-1,儲存這個細節係數就可以恢復後2個畫素值。因此,原始影象就可以用下面的兩個平均值和兩個細節係數表示,

               [8 4 1 -1]

步驟3:重複第1,2步,把由第一步分解得到的影象進一步分解成解析度更低的影象和細節係數。在這個例子中,分解到最後,就用一個畫素的平均值6和三個細節係數2,1和-1表示整幅影象。

               [6  2  1  -1]

這個分解過程如表8-1所示。

8-1哈爾變換過程

解析度

平均值

細節係數

4

[9  7  3  5]

2

[8  4]

[1  -1]

1

[6]

[2]

    由此可見,通過上述分解就把由4畫素組成的一幅影象用一個平均畫素值和三個細節係數表示,這個過程就叫做哈爾小波變換(Haar wavelet transform),也稱哈爾小波分解(Haar wavelet decomposition)。這個概念可以推廣到使用其他小波基的變換。
    從這個例子中我們可以看到:

 ① 變換過程中沒有丟失資訊,因為能夠從所記錄的資料中重構出原始影象。
  ② 對這個給定的變換,我們可以從所記錄的資料中重構出各種解析度的影象。例如,在解析度為1的影象基礎上重構出解析度為2的影象,在解析度為2的影象基礎上重構出解析度為4的影象。
  ③ 通過變換之後產生的細節係數的幅度值比較小,這就為影象壓縮提供了一種途徑,例如去掉一些微不足道的細節係數並不影響對重構影象的理解。

圖1 是Haar 小波對二維影象的一級及三級分解子帶圖, 在右圖中最低頻a3 子帶影象與原始影象極其相似, 只是尺寸變小, 它包含了原圖的絕大部分能量,對恢復影象質量影響較大, 其餘高頻子帶的小波係數大多非常小。在同一層, 由於v 及h 子圖表示的邊緣子影象的小波係數和方差比d 子圖要大, 因此d 子圖在重構影象時不是很重要[4 ]。