oepncv python 如何使用小波变换将图像分成低、高频两部分 并显示出来
时间: 2023-12-14 07:39:46 浏览: 30
使用小波变换将图像分成低、高频两部分的步骤如下:
1. 读取图像并转为灰度图像。
```
import cv2
# 读取图像并转为灰度图像
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
2. 进行小波变换并分离低、高频部分。
```
import pywt
# 进行小波变换
coeffs = pywt.dwt2(gray, 'haar')
# 分离低、高频部分
cA, (cH, cV, cD) = coeffs
```
3. 显示低、高频部分图像。
```
# 显示低频部分图像
cv2.imshow('Low frequency', cv2.convertScaleAbs(cA))
# 显示高频部分图像
cv2.imshow('High frequency', cv2.convertScaleAbs(pywt.idwt2((None, (cH, cV, cD)), 'haar')))
```
完整代码如下:
```
import cv2
import pywt
# 读取图像并转为灰度图像
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行小波变换
coeffs = pywt.dwt2(gray, 'haar')
# 分离低、高频部分
cA, (cH, cV, cD) = coeffs
# 显示低频部分图像
cv2.imshow('Low frequency', cv2.convertScaleAbs(cA))
# 显示高频部分图像
cv2.imshow('High frequency', cv2.convertScaleAbs(pywt.idwt2((None, (cH, cV, cD)), 'haar')))
cv2.waitKey(0)
cv2.destroyAllWindows()
```