discrete wavelet transform (DWT):离散小波变换
切片操作可视化图

切片操作代码实现
def dwt_init3d(x):
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
return torch.cat((x_LL, x_HL, x_LH, x_HH), 1)
def dwt_init(x):
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
return torch.cat((x_LL, x_HL, x_LH, x_HH), 1)