图像小波变换实例python代码
时间: 2023-10-14 16:31:23 浏览: 89
下面是一个使用Python实现的图像小波变换的示例代码:
```python
import pywt
import numpy as np
import cv2
# 加载图像
img = cv2.imread('lena.png', 0)
# 将图像转换为float类型
img = np.float32(img)
# 进行二维小波变换
coeffs = pywt.dwt2(img, 'haar')
# 分离出LL、LH、HL和HH系数
LL, (LH, HL, HH) = coeffs
# 将系数缩放到0-255范围内
LL = cv2.normalize(LL, None, 0, 255, cv2.NORM_MINMAX)
LH = cv2.normalize(LH, None, 0, 255, cv2.NORM_MINMAX)
HL = cv2.normalize(HL, None, 0, 255, cv2.NORM_MINMAX)
HH = cv2.normalize(HH, None, 0, 255, cv2.NORM_MINMAX)
# 将系数转换为uint8类型
LL = np.uint8(LL)
LH = np.uint8(LH)
HL = np.uint8(HL)
HH = np.uint8(HH)
# 显示原始图像和小波变换后的系数图像
cv2.imshow('Original Image', img)
cv2.imshow('LL', LL)
cv2.imshow('LH', LH)
cv2.imshow('HL', HL)
cv2.imshow('HH', HH)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在此示例中,我们首先加载了一张图像,并将其转换为float类型。然后,我们使用PyWavelets库中的`dwt2`函数进行二维小波变换,并将结果分离为LL、LH、HL和HH系数。接下来,我们将系数缩放到0-255范围内,并将其转换为uint8类型。最后,我们显示原始图像和小波变换后的系数图像。
阅读全文