均值滤波去噪 python
时间: 2025-02-09 13:09:18 浏览: 40
### 均值滤波去噪方法
均值滤波是一种简单的线性平滑处理技术,通过计算邻域内像素的平均值来替代中心像素值。这种方法可以有效减少图像中的噪声。
对于二维图像数据 `I(x,y)` 的均值滤波可以通过卷积操作完成:
\[ I_{\text{filtered}}(x,y)= \frac{1}{m*n} \sum^{m}_{i=-m}\sum^{n}_{j=-n} I(x+i, y+j) \]
其中 \( m,n \) 是窗口大小的一半[^1]。
下面是一个使用 Python 和 OpenCV 实现均值滤波的具体例子:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
def apply_mean_filter(image_path, kernel_size=5):
# 读取图片
img = cv2.imread(image_path)
# 应用均值滤波器
blur = cv2.blur(img,(kernel_size,kernel_size))
# 显示原始图和过滤后的图
plt.figure(figsize=(8,4))
plt.subplot(1,2,1),plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB)),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2),plt.imshow(cv2.cvtColor(blur,cv2.COLOR_BGR2RGB)),plt.title(f'Mean Filtered {kernel_size}x{kernel_size}')
plt.xticks([]), plt.yticks([])
plt.show()
apply_mean_filter('noisy_image.jpg', kernel_size=5)
```
这段代码实现了如下功能:
- 使用OpenCV库加载一张带有噪声的输入图像;
- 定义了一个函数`apply_mean_filter()`用于应用指定尺寸的均值滤波核;
- 利用了Matplotlib展示原图以及经过均值滤波之后的效果对比;
阅读全文
相关推荐



















