小波變化庫——Pywalvets學習筆記


筆記

術語(中英對照):

  • 尺度函數:scaling function(又稱父函數 father wavelet)
  • 小波函數:wavelet function(又稱母函數 mother wavelet)
  • 連續的小波變換:CWT
  • 離散的小波變換:DWT

小波變換的基本知識:

  • 不同的小波基函數,是由同一個基本小波函數經縮放和平移生成的。
  • 小波變換是將原始圖像與小波基函數以及尺度函數進行內積運算,所以一個尺度函數和一個小波基函數就可以確定一個小波變換
  • 小波變換后低頻分量

基本的小波變換函數

Pywalvets API 說明

1.查看小波族:pywt.families

2.查看每個小波族中提供的系數:pywt.wavelist

pywt.wavelist(family = None, kind = 'all')

family:小波族的名稱

kind:可以查看小波族下全部、離散、連續的小波

3.二維小波變換(一維和n維類似):

單層變換 pywt.dwt2

pywt.dwt2(data, wavelet, mode='symmetric', axes=(-2, -1))

data:輸入的數據

wavelet:小波基

mode:默認是對稱的

return:(cA, (cH, cV, cD))要注意返回的值,分別為低頻分量,水平高頻,垂直高頻,對角線高頻。高頻的值包含在一個tuple中。

單層逆變換 pywt.idwt2

pywt.idwt2(coeffs, wavelet, mode, axes)

coeffs:經小波變換后得到的各層的系數(coeffs 多項式系數)

wavelet:小波基

多尺度變換 wavedec2

pywt.wavedec2(data, wavelet, mode='symmetric', level=None, axes=(-2, -1))

data:輸入的數據

wavelet:小波基

level:尺度(要變換多少層)

return:返回的值要注意,每一層的高頻都包含在一個tuple中,例如3層的話返回為[cA3, (cH3, cV3, cD3), (cH2, cV2, cD2), (cH1, cV1, cD1)]

閾值函數 pywt.threshold

pywt.threshold(data, value, mode=, substitute=)        # threshold 臨界值,極限

data:輸入的數據

value:閾值

mode:閾值函數的類型,API提供四種類型(soft hard greater less)

substitute:要替換的值(經閾值函數處理后的值)   # substitute 替換

利用小波變換對圖像進行處理時注意的問題

1.小波基的選擇問題

API給出了很多小波族,每個小波族又有很多系數可供選擇,在處理圖片時怎么選擇並沒有標准答案,在實驗過程中主要用到最后的結果——“相同類的統計特征相近,不同類的統計特征相差很大”來挑選小波基函數。

2.多尺度(多次)小波變化中層數的選擇

多尺度小波變換一般是3~4層,但注意是,圖片太小,或紋理不豐富,用單層的小波變換就足夠了。如果用多層的小波變換,Pywalvets仍會返回一層變換的結果,因為信息量過小導致不能采樣來進一步進行變換。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM