写一个小波去噪的python代码
时间: 2023-09-03 07:15:38 浏览: 117
小波去噪程序
4星 · 用户满意度95%
下面是一个基于小波去噪的Python代码示例:
```python
import numpy as np
import pywt
import cv2
# 读入图像
img = cv2.imread('noisy_image.png', 0)
# 使用haar小波进行去噪
coeffs = pywt.dwt2(img, 'haar')
coeffs_arr = pywt.coeffs_to_array(coeffs)
threshold = np.std(coeffs_arr) * 3
coeffs_arr[np.abs(coeffs_arr) < threshold] = 0
coeffs = pywt.array_to_coeffs(coeffs_arr, coeffs[1], output_format='wavedec2')
denoised_img = pywt.waverec2(coeffs, 'haar')
# 显示去噪后的图像
cv2.imshow('denoised image', denoised_img.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,首先读入需要去噪的图像,然后使用Haar小波对其进行二维小波变换(dwt2)。接着,将小波系数数组(coeffs_arr)中低于阈值(threshold)的系数置为0,然后使用小波逆变换(waverec2)得到去噪后的图像(denoised_img)。最后,使用OpenCV库显示去噪后的图像。
阅读全文