中值滤波法代码补全
时间: 2023-08-07 19:10:28 浏览: 78
中值滤波法是一种常用的图像处理算法,可以有效地去除椒盐噪声。下面是中值滤波法的代码实现,你可以根据需要进行补全:
```python
import cv2
import numpy as np
def median_filter(image, kernel_size):
"""
中值滤波法实现函数
:param image: 输入图像
:param kernel_size: 卷积核大小
:return: 滤波后的图像
"""
# 获取图像的高度和宽度
height, width = image.shape[:2]
# 定义输出图像
output_image = np.zeros((height, width), dtype=np.uint8)
# 计算卷积核的边长
k = (kernel_size - 1) // 2
# 遍历图像的每个像素
for i in range(k, height - k):
for j in range(k, width - k):
# 获取卷积核范围内的像素值列表
values = []
for x in range(i - k, i + k + 1):
for y in range(j - k, j + k + 1):
values.append(image[x, y])
# 对像素值列表进行排序
values.sort()
# 取中间值作为输出像素值
output_image[i, j] = values[len(values) // 2]
return output_image
# 读取图像
image = cv2.imread("image.png", cv2.IMREAD_GRAYSCALE)
# 进行中值滤波
kernel_size = 5
output_image = median_filter(image, kernel_size)
# 显示输出图像
cv2.imshow("Output Image", output_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文