python实现cv中的非局部均值去噪滤波器
时间: 2023-12-28 20:06:01 浏览: 177
非局部均值滤波器
4星 · 用户满意度95%
非局部均值去噪滤波器是一种常见的图像去噪方法,可以有效地去除图像中的高斯噪声、椒盐噪声等。下面是Python实现OpenCV中的非局部均值去噪滤波器的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread("lena.png")
# 添加高斯噪声
noise = cv2.randn(img, 0, 50)
img_noise = cv2.add(img, noise)
# 非局部均值去噪
img_denoise = cv2.fastNlMeansDenoisingColored(img_noise, None, 10, 10, 7, 21)
# 显示图像
cv2.imshow("Original", img)
cv2.imshow("Noisy", img_noise)
cv2.imshow("Denoised", img_denoise)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
代码中首先读取一张图像并添加高斯噪声,然后调用`cv2.fastNlMeansDenoisingColored`函数进行非局部均值去噪,最后显示去噪前后的图像。其中,`None`表示不使用掩码图像,`10`和`10`分别为两个h参数,`7`和`21`分别为两个窗口的大小。可以根据实际需要调整这些参数。
阅读全文