图像滤波代码python
时间: 2025-01-07 16:04:23 浏览: 3
### Python 实现图像滤波算法
#### 平均滤波
平均滤波是一种简单的线性滤波方法,通过取邻域内像素的平均值来平滑图像,从而去除噪声。下面是一个使用 OpenCV 和 NumPy 的平均滤波实现:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg')
# 应用平均滤波
mean_filtered = cv2.blur(image, (5, 5))
# 显示结果
cv2.imshow('Mean Filter', mean_filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码展示了如何加载一张图片并应用一个 \(5 \times 5\) 大小窗口的平均滤波器[^1]。
#### 高斯滤波
高斯滤波也是一种常用的平滑技术,它不仅考虑了空间位置还加入了权重因子使得中心点附近的像素贡献更大。下面是高斯滤波的应用实例:
```python
# 使用OpenCV进行高斯模糊处理
gaussian_blur = cv2.GaussianBlur(image, (5, 5), 0)
# 展示经过高斯滤波后的效果
cv2.imshow('Gaussian Blur', gaussian_blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这里 `cv2.GaussianBlur` 函数接受三个参数:输入图像、卷积核大小以及标准差(设置为零表示自动计算)。
#### 中值滤波
除了上述两种外,中值滤波对于减少椒盐噪音特别有效。以下是其具体操作方式:
```python
median_blur = cv2.medianBlur(image, 5)
cv2.imshow('Median Blur', median_blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
此函数采用了一个固定的奇数尺寸的方形窗口,在该区域内寻找中间值作为新像素的颜色。
阅读全文