参考博文:
- https://blog.csdn.net/baidu_27643275/article/details/84826773
- http://www.360doc.com/content/16/0329/14/32070490_546259420.shtml
- https://www.cnblogs.com/wanghui-garcia/p/12524515.html
1. 代码
x01 = x[:, :, 0::2, :] / 2
x02 = x[:, :, 1::2, :] / 2
x1 = x01[:, :, :, 0::2]
x2 = x02[:, :, :, 0::2]
x3 = x01[:, :, :, 1::2]
x4 = x02[:, :, :, 1::2]
x_LL = x1 + x2 + x3 + x4
x_HL = -x1 - x2 + x3 + x4
x_LH = -x1 + x2 - x3 + x4
x_HH = x1 - x2 - x3 + x4
-
首先,了解一下 [:]以及[::]的用法:
- [a:b]-取索引为a-b-1之间的数据
- [a::b]-从索引a开始,每隔b个取一个
>>>A = [0, 1, 2, 3, 4, 5, 6, 7]
>>> A[0::2]
[0, 2, 4, 6]
- 图像的格式是【Batch, Channel, Height, Width】
2. 原理
h_high 是高通滤波,保留高频信息,即图像的细节信息,二维图像指的是纹理信息;
h_low 是低通滤波,保留低频信息,即图像的整体信息,二位图像指的是不同尺度下的下采样图像;
其一级小波分解流程如下图所示,二级小波,重复以下步骤: