我正在尝试对图像进行一些小波分析,我需要一些多尺度分解的方法。我正在试验 PyWavelets 包。然而,dwt2
和idwt2
方法仅提供单一尺度。我可以迭代这些方法,并将单尺度分解应用于图像的较小区域;如果结果dwt2
由 4 个数组组成:
---------
| A | B |
---------
| C | D |
---------
然后我可以应用dwt2
到子数组A
等等。然而,这里的困难在于许多小波产生的数组大于输入。请注意,在PyWavelets 示例页面上,使用的小波是db1
. 但如果我们尝试db2
:
>>> import pywt
>>> x = [3, 7, 1, 1, -2, 5, 4, 6]
>>> db2 = pywt.Wavelet('db2')
>>> X = pywt.wavedec(x, db2)
>>> print X[0]
[ 5.65685425 7.39923721 0.22414387 3.33677403 7.77817459]
>>> print X[1][0]
-2.44948974278
>>> print X[1][1]
-1.60368225335
>>> print X[1][2]
-4.44140056379
因此,除了使用db1
(即 Haar 小波)外,我似乎无法执行多级分解。
我知道其他包中有各种小波实现,但我不知道它们中的任何一个是否提供多维数据的稳健多尺度分解。我在这里最好的选择是什么?