7.4 编程实现例 7.4 中可分离二维二进小波的快速分解与重构算法
(1) 算法实现
使用 matlab 来实现非正交二次样条二维二进小波的快速分解和重构,实现的函数说明如
下
function [a, d1, d2] = swt1_decomp(x,n,h,g)
函数功能:
二维二进小波分解
输入参数:
x – 待分解的二维数组
n – 分解的级数
h – 分解低通滤波器系数
g – 分解高通滤波器系数
输出参数:
a – 逼近矩阵
d1 – 水平细节信息矩阵
d2 – 竖直细节信息矩阵
function x = swt1_recon(a,d1,d2,n,h,g,l)
函数功能:
二维二进小波重构
输入参数:
a – 逼近矩阵
d1 – 水平细节信息矩阵
d2 – 竖直细节信息矩阵
n – 重构的级数
h – 重构低通滤波器系数
g – 重构高通滤波器系数
l – 重构滤波器系数
输出参数:
x – 重构的二维数组
在实现以上函数时主要用到了以下 wavelet toolbox 中的函数:
wconv 函数对二维数组和滤波器进行卷积运算
wextend 函数在卷积前对二维图像进行周期延拓
wkeep 函数对卷积结果进行截断
还用到了 dyadup 和 dyaddown 对滤波器进行上抽样和下抽样。
(2) 测试结果
以下是使用所实现的算法对二维图片的测试结果
图片大小为 256*256,使用 4 级二进小波进行分解
- 1
- 2
前往页