0

コードが以下の画像の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()

このコードは、水平、垂直、対角の近似値を提供します。これらの4つのバンドを使用して元の画像を再構築するにはどうすればよいですか?

4

1 に答える 1

0

このコードを試してください。「haar」、「db2」、「db3」、「bior」などのウェーブレット変換を使用して、取得した係数を idwt2 関数に渡す必要があるだけです。

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)
于 2020-09-20T09:58:30.167 に答える