本文已参与「新人创造礼」活动,一起开启创造之路。
离散小波改换(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实现二维小波改换的函数为:
[CA,CH,CV,CD] = dwt2(X,'wname')
其中X为输入的图画,’wname’是小波名字。如常用的 ‘wname’=’db1’小波滤波器,db1表明小波的消失矩为1,小波滤波器的长度为2*1=2。
输出变量为:
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代码
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张图画能够做后续的处理。