Итак, я пытался переопределить эту бумагу , в частности, при удалении тонкого облачного покрова путем уменьшения низкочастотной части и усиления высокочастотной части вейвлета.
Итак, я разложил изображение с помощью модуля pywt.dwt2 и использовал высокочастотный фильтр Гаусса, чтобы усилить высокую частоту при разложении вейвлета и реконструировать разложенный вейвлет в одно изображение с помощью модуля pywt.idwt2. Затем часть, которую я не получаю, состоит в том, что автор заменяет значение пикселя конечного изображения на значение пикселя исходного изображения, если коэффициент вейвлета увеличивается, но заменяет значение пикселя конечного изображения на значение пикселя восстановленного разложенного вейвлета. Итак, какое на самом деле значение вейвлет-коэффициента в модуле pywt.dwt2? Это значение пикселя аппроксимирующего, горизонтального, вертикального и диагонального вейвлет-преобразования изображения? Или это значение пикселя восстановленного разложенного вейвлет-изображения, так что я просто нужно сравнить его значение в пикселях с исходным изображением?
Вот код, который я использую
import matplotlib.pyplot as plt
from scipy import fftpack as fp
from scipy import ndimage
import pywt
import pywt.data
import skimage
from skimage import io, color
import cv2
original=io.imread('D:\\data1g.png')
original2=io.imread('D:\\data2g.png')
coeffs2 = pywt.dwt2(original, 'bior1.3')
LL, (LH, HL, HH) = coeffs2
lowpassa,lowpassh,lowpassv,lowpassd = ndimage.gaussian_filter(LL, 3),ndimage.gaussian_filter(LH, 3),ndimage.gaussian_filter(HL, 3),ndimage.gaussian_filter(HH, 3)
gauss_highpassa,gauss_highpassh,gauss_highpassv,gauss_highpassd = LL - lowpassa,LH - lowpassh,HL - lowpassv,HH - lowpassd
hcoeffs2=gauss_highpassa,(gauss_highpassh,gauss_highpassv,gauss_highpassd)
transformed=pywt.idwt2(hcoeffs2,'bior1.3')