pyhton实现中值滤波法
时间: 2023-09-23 11:02:28 浏览: 175
Python 实现中值滤波、均值滤波的方法
5星 · 资源好评率100%
中值滤波法是一种常见的图像处理算法,可以用来去除图像中的噪声。以下是Python实现中值滤波法的示例代码:
```python
import numpy as np
import cv2
def median_filter(img, kernel_size):
"""
中值滤波函数
:param img: 输入图像
:param kernel_size: 滤波器尺寸
:return: 滤波后的图像
"""
height, width = img.shape
kernel_half = kernel_size // 2
img_filtered = np.zeros((height, width), dtype=np.uint8)
for i in range(kernel_half, height - kernel_half):
for j in range(kernel_half, width - kernel_half):
window = img[i - kernel_half:i + kernel_half + 1, j - kernel_half:j + kernel_half + 1]
img_filtered[i, j] = np.median(window)
return img_filtered
if __name__ == '__main__':
img = cv2.imread('lena.png', cv2.IMREAD_GRAYSCALE)
img_filtered = median_filter(img, 5)
cv2.imshow('Original Image', img)
cv2.imshow('Filtered Image', img_filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在以上代码中,我们首先定义了一个`median_filter`函数,该函数接受两个参数:输入图像和滤波器尺寸。然后我们初始化一个输出图像`img_filtered`,并对每个像素应用中值滤波器。
最后,我们使用OpenCV库读取一张灰度图像,对其进行中值滤波并显示原始图像和滤波后的图像。
阅读全文