pywt
1#!/usr/bin/env python
2# Note: This demo is a repeat of wp_2d, but using WaveletPacketND instead
3
4import matplotlib.pyplot as plt5import numpy as np6
7import pywt.data8from pywt import WaveletPacketND9
10arr = pywt.data.aero()11
12maxlevel = 213wp2 = WaveletPacketND(arr, 'db2', 'symmetric', maxlevel=maxlevel)14
15# Show original figure
16plt.imshow(arr, interpolation="nearest", cmap=plt.cm.gray)17
18fig = plt.figure()19i = 120nsubplots = len(wp2.get_level(maxlevel, 'natural'))21nrows = int(np.floor(np.sqrt(nsubplots)))22ncols = int(np.ceil(nsubplots/nrows))23for node in wp2.get_level(maxlevel, 'natural'):24ax = fig.add_subplot(nrows, ncols, i)25ax.set_title(f"{node.path_tuple}")26ax.imshow(np.sqrt(np.abs(node.data)), origin='upper',27interpolation="nearest", cmap=plt.cm.gray)28ax.set_axis_off()29i += 130
31plt.show()32