[英]Discrete wavelet transformation on image using 'haar' wavelet in python
我正在尝试在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 <module>
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')
以下应该工作:
idwt2((cA,(cH1,cV1,cD)),'haar')[:Mc,:Nc]
您错过了将coeff打包到单个元组中的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.