python对二维数组进行均值滤波算法
时间: 2023-09-14 14:12:15 浏览: 248
均值滤波是一种简单的滤波算法,可以用来平滑二维数组中的噪声。其基本思想是用一个固定大小的窗口对数组进行遍历,对窗口内的值取平均值作为该窗口内像素点的新值。Python实现二维数组的均值滤波算法的代码如下:
```python
import numpy as np
def mean_filter(image, kernel_size):
"""二维数组均值滤波算法"""
height, width = image.shape
filtered = np.zeros((height, width))
half_kernel = kernel_size // 2
for i in range(half_kernel, height - half_kernel):
for j in range(half_kernel, width - half_kernel):
# 取以当前像素为中心的kernel_size * kernel_size的窗口内的值
window = image[i - half_kernel:i + half_kernel + 1, j - half_kernel:j + half_kernel + 1]
# 计算窗口内像素点的平均值
filtered[i, j] = np.mean(window)
return filtered
```
其中`image`是待滤波的二维数组,`kernel_size`是滤波器的大小,应为正奇数。函数返回滤波后的二维数组。
阅读全文