邻域平均法代码补全
时间: 2023-07-02 19:07:01 浏览: 83
以下是邻域平均法的代码实现:
```python
import numpy as np
def neighborhood_average(image, kernel_size):
"""
对图像进行邻域平均滤波
:param image: 原始图像,灰度图像
:param kernel_size: 滤波器大小,一个正奇数
:return: 滤波后的图像
"""
# 获取图像的高度和宽度
height, width = image.shape[:2]
# 计算滤波器的半径
radius = kernel_size // 2
# 定义输出图像
output_image = np.zeros_like(image)
# 对每个像素进行滤波
for i in range(height):
for j in range(width):
# 计算当前像素的邻域
neighborhood = image[max(0, i - radius):min(height, i + radius + 1),
max(0, j - radius):min(width, j + radius + 1)]
# 对邻域内的像素求平均值
output_image[i, j] = np.mean(neighborhood)
return output_image
```
使用方法:
```python
import cv2
# 读取图像
image = cv2.imread('lena.png', cv2.IMREAD_GRAYSCALE)
# 对图像进行邻域平均滤波
output_image = neighborhood_average(image, 5)
# 显示滤波前后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Filtered Image', output_image)
cv2.waitKey(0)
```
其中 `image` 为原始图像,`kernel_size` 为滤波器大小。函数返回滤波后的图像。