【问题标题】:how to get decomposition result of dwt3如何得到dwt3的分解结果
【发布时间】:2017-04-03 22:45:08
【问题描述】:

函数dwt3来自Wavelet Toolbox,用于执行单级离散3-D小波变换。我测试如下。我有两个问题,一个:如何获得分解mat得到8个不同的高低频水平,:如何保持与输入mat相同的维度,即分解mat dim仍然是4*4*4和输入一样3D 数组。

X = reshape(1:64,4,4,4)
wt = dwt3(X,'coif1')

wt = 

sizeINI: [4 4 4]
filters: [1x1 struct]
   mode: 'sym'
    dec: {2x2x2 cell}

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以通过附加 .dec{level} 来获取分解值。 .即

    X = reshape(1:64,4,4,4);
    
    wt = dwt3(X,'coif1');
    
    wt.dec{1}
    
    wt.dec{2}
    

    【讨论】:

    • 谢谢。正好从 dec: {2x2x2} 有 8 个过滤结果,不知道分解结果和输入数据有什么关系。如果输入的数据是一批图片,如何得到过滤后的图片?
    • 另一个奇怪的事情。如果输入4*4*4,分解结果还是4*4*4,但是为什么输入512*512*40,结果变成258*258*22?
    • 您的两个问题的答案都在于小波变换的体系结构。 dwt3 是输入 3D 矩阵的 1 级 3D 分解。每个级别的小波分解由 2 个步骤组成,即应用低通和高通滤波器(将频带分成两半)和下变频 2 倍。因此,从 dwt3 传递图像后,您将有两个图像 wt.dec{1} 和 wt.dec {2}。一个将包含 HF 分量,另一个将包含母图像的 LF 分量。
    • 因为过滤实际上是卷积,我们有一个长度为 5 的 'coif1' 过滤器。因此,如果卷积后为 512x512x40,我们将有一个长度 (512+5-1) x (512 +5-1) x (40+5-1) = 516x516x44。向下转换 2 后,我们将得到 258x258x22 的长度。然而,在长度为 4 的情况下,我们将有 (4+5-1)x(4+5-1)x(4+5-1)=8x8x8。下转换后会变成4x4x4。
    猜你喜欢
    • 1970-01-01
    • 2022-08-15
    • 2018-05-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多