离散小波变换 python_用python中的“haar”小波对图像进行离散小波变换

我试图在python中的图像上应用haar小波。这是代码from pywt import dwt2, idwt2

img = cv2.imread('xyz.png')

cA, (cH, cV, cD) = dwt2(img, 'haar')

然后我修改嵌入一些数据的系数,如下所示cH1=cH+k*pn_sequence_h

cV1=cV+k*pn_sequence_v

之后,我将idwt应用于下面的代码idwt2(cA,(cH1,cV1,cD),'haar')[:Mc,:Nc]

其中Mc和Nc是分解图像的高度和宽度。

但是,我收到此代码的错误。以下是错误。Traceback (most recent call last):

File "dwt.py", line 15, in

idwt2(cA,(cH1,cV1,cD),'haar')[:Mc,:Nc]

File "C:\Python27\lib\site-packages\pywt\_multidim.py", line 104, in idwt2

LL, (HL, LH, HH) = coeffs

ValueError: too many values to unpack

我该怎么做才能解决这个错误?我是python的新手。任何帮助将不胜感激。

我也在下面的代码中尝试过这样的。但在这里我没有得到像CA,CH,CV,CD这样的系数。我得到的是所有系数。import numpy as np

import pywt

import numpy

import PIL

from PIL import Image

img = PIL.Image.open("rot.png").convert("L")

imgarr = numpy.array(img)

coeffs = pywt.dwt2(imgarr, 'haar')

pywt.idwt2(coeffs, 'haar')

你可能感兴趣的:(离散小波变换,python)