>我找到了代码如下的图像的DWT
import numpy as np
import matplotlib.pyplot as plt
import cv2
import pywt
import pywt.data
# Load image
original = cv2.imread('/content/drive/My Drive/Colab Notebooks/Asplab/fgsm/watermark1.JPEG')
original = cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)
# Wavelet transform of image, and plot approximation and details
titles = ['Approximation', ' Horizontal detail',
'Vertical detail', 'Diagonal detail']
coeffs2 = pywt.dwt2(original, 'bior1.3')
LL, (LH, HL, HH) = coeffs2
fig = plt.figure(figsize=(12, 3))
for i, a in enumerate([LL, LH, HL, HH]):
ax = fig.add_subplot(1, 4, i + 1)
ax.imshow(a, interpolation="nearest", cmap=plt.cm.gray)
ax.set_title(titles[i], fontsize=10)
ax.set_xticks([])
ax.set_yticks([])
fig.tight_layout()
plt.show()
这段代码给了我近似值,水平,垂直和对角线。如何使用这四个波段重建原始图像?
试试这段代码。只是您必须将获得的系数传递给 idwt2 函数的小波变换,例如"haar"或"db2"或"db3"或"bior">
imgr=pywt.idwt2(coeffs2,'db3')
imgr=np.uint8(imgr)
plt.figure(figsize=(30,30))
plt.show()
plt.imshow(imgr,interpolation="nearest",cmap=plt.cm.gray)
plt.title('reconstruction image',fontsize=40)