Matlab 離散小波變換函數 dwt2() 原理介紹與實驗

語言: CN / TW / HK

本文已參與「新人創作禮」活動,一起開啟掘金創作之路。

離散小波變換(DWT)的原理介紹和説明請參考文章:【DWT筆記】傅里葉變換與小波變換 這篇文章寫的通俗易懂,小白也能看懂。

一、小波變換的原理

1.1 小波變換簡介

離散小波變換(DWT)的原理介紹和説明請參考文章:【DWT筆記】傅里葉變換與小波變換 這篇文章寫的通俗易懂,小白也能看懂。簡單從上面的參考文章中提取關鍵信息:

1、圖像信號的低頻部分(低通帶)表示圖像的基本信息(平滑信息),而高頻部分(高通帶)表示圖像的細節信息。

2、圖像中的高頻部分一般持續的時間是比較短的,一般是以短時突變或者尖峯的形式出現,如圖像的邊緣信息和一些噪點信息。而低頻信息在大部分地方存在,反應在一些背景或內容信息。這樣我們在分析信號的低頻部分的時候,只需要較大的頻率分辨率和較小的時域分辨率就能夠很好的體現低頻的信息,而在高頻部分,就需要較大的時間分辨率和較小的頻率分辨率就能夠很好的體現高頻的信息。

3、在離散小波變換中,濾波器將在不同的尺度條件下截斷信號的某些頻率成分:信號通過不同的高通濾波器得到一系列的信號高頻成分,通過不同的低通濾波器得到一系列的低頻成分,這樣便能分析信號的不同頻率成分。

1.2 CWT和DWT的原理

小波變換利用一個具有快速衰減性和震盪性的函數作為母函數,通過尺度因子a(也稱為伸縮因子)和平移因子t對母函數進行伸縮和平移得到一個函數族(稱為小波基函數)。尺度因子和平移因子是小波基最重要的兩個參數,也代表了小波變換的基本思想。

在一定條件下,任意能量有限的信號可以按照其函數族進行時--頻分解,基函數在時--頻相平面上具有可變的時間--頻率窗口,可以適應不同分辨率的需求。

連續小波變換(CWT)是通過不斷改變窗口的尺度計算完成的:在時域移動窗口函數,然後與信號做卷積運算。

在離散小波變換(DWT)中,濾波器將在不同的尺度條件下截斷信號的某些頻率成分:信號通過不同的高通和低通濾波器得到一系列的高頻和低頻成分,這樣便可以分析不同的頻率成分。

二、傅里葉變換與DWT的比較

基本的傅里葉變換不存在分辨率的問題,因為傅里葉變換在時域裏面頻域的分辨率為0,同樣在頻域裏面,時域的分辨率也為0,所以説,傅里葉變換其實沒有分辨率。

短時傅里葉變換是通過加窗的方式對時域不同時間段的信號進行分析,但是由於窗長是固定的,所以,分辨率是固定的,並且根據窗長的選擇在時域和頻域的分辨率上是一個矛盾。

小波變換可以根據尺度的變換和偏移在不同的頻段上給出不同的分辨率,這在實際中是非常有用的。

三、Matlab實現圖像的二維小波變換

3.1 dwt2()函數介紹

參考博客:小波學習筆記(圖像的分解與重構)——MATLAB

Matlab實現二維小波變換的函數為:

bash [CA,CH,CV,CD] = dwt2(X,'wname')

其中X為輸入的圖像,'wname'是小波名字。如常用的 'wname'='db1'小波濾波器,db1表示小波的消失矩為1,小波濾波器的長度為2*1=2。

輸出變量為:

bash CA:圖像的低頻信息,刻畫原始圖像的逼近信息。 CH:圖像水平方向的高頻信息,刻畫原始圖像的橫向細節。 CV:圖像豎直方向的高頻信息,刻畫原始圖像的垂直細節。 CD:圖像在對角線方向的高頻信息,刻畫原始圖像的對角線上的細節。 DWT中的採樣間隔需要滿足Nyquist定理,一般默認採用二倍隔點採用,因此經過DWT的圖像的長和寬均變為原來的 1/2

3.2 dwt2()的使用

3.2.1 輸入和輸出圖像

輸入圖像(521*521):

在這裏插入圖片描述

低頻 CA(261*261):

在這裏插入圖片描述

水平方向的高頻 CH(261*261):

在這裏插入圖片描述

垂直方向的高頻 CV(261*261):

在這裏插入圖片描述

垂直方向的高頻 CD(261*261):

在這裏插入圖片描述

3.2.2 Matlab代碼

```bash clear all; close all; clc;

imagePath='source_images\3.jpg'; image_color=imread(imagePath);
image_gray=rgb2gray(image_color); image_double=double(image_gray);

[CA,CH,CV,CD]=dwt2(image_double,'db1'); imwrite(uint8(CA),'Results/CA.jpg'); imwrite(uint8(CH),'Results/CH.jpg'); imwrite(uint8(CV),'Results/CV.jpg'); imwrite(uint8(CD),'Results/CD.jpg'); ```

3.2.3 實驗總結

輸入的圖像經過DWT分解為4個尺寸變為原圖1/4的圖像,其中包含一個低頻圖像,3個高頻圖像。根據這2張圖像可以做後續的處理。