图像处理小波变换(含python代码)
目录理论准备参考代码实现低频分量对应的图像水平方向上高频分量对应的图像垂直方向上高频分量对应的图像对角线方向上高频分量对应的图像根据小波系数重构的图像理论准备参考https://blog.csdn.net/u012654981/article/details/81984885https://blog.csdn.net/u011285477/article/details/104162355小波变换
·
理论准备
参考
https://blog.csdn.net/u012654981/article/details/81984885
https://blog.csdn.net/u011285477/article/details/104162355
小波变换可以通过低通或高通滤波器将图像信息一层一层分离开,使用一系列不同尺度的小波去分解原函数。
代码实现
import pywt
import cv2
import numpy as np
# 读取灰度图
img=cv2.imread("F:/people.png",0)
#对img进行haar小波变换,变量分别是低频,水平高频,垂直高频,对角线高频
cA,(cH,cV,cD)=pywt.dwt2(img,"haar")
#小波变换之后,低频分量对应的图像
cv2.imwrite('lena.png',np.uint8(cA/np.max(cA)*255))
我们可以看到目录中多了一张低频图片
import pywt
import cv2
import numpy as np
# 读取灰度图
img=cv2.imread("F:/people.png",0)
#对img进行haar小波变换,变量分别是低频,水平高频,垂直高频,对角线高频
cA,(cH,cV,cD)=pywt.dwt2(img,"haar")
print(cA)
#小波变换之后,低频分量对应的图像
cv2.imwrite('lena.png',np.uint8(cA/np.max(cA)*255))
# 小波变换之后,水平方向上高频分量对应的图像
cv2.imwrite('lena_h.png',np.uint8(cH/np.max(cH)*255))
# 小波变换之后,垂直方向上高频分量对应的图像
cv2.imwrite('lena_v.png',np.uint8(cV/np.max(cV)*255))
# 小波变换之后,对角线方向上高频分量对应的图像
cv2.imwrite('lena_d.png',np.uint8(cD/np.max(cD)*255))
# 根据小波系数重构的图像
rimg=pywt.idwt2((cA,(cH,cV,cD)),"haar")
cv2.imwrite("rimg.png",np.uint8(rimg))
低频分量对应的图像
水平方向上高频分量对应的图像
垂直方向上高频分量对应的图像
对角线方向上高频分量对应的图像
根据小波系数重构的图像
更多推荐
已为社区贡献1条内容
所有评论(0)