均值滤波算法代码python
时间: 2023-11-12 14:00:52 浏览: 222
好的,以下是均值滤波算法的 Python 代码:
```python
import cv2
import numpy as np
def mean_filter(img, kernel_size):
# 获取图像的行数和列数
rows, cols = img.shape[:2]
# 创建一个空白图像,用于存储均值滤波后的结果
result = np.zeros((rows, cols), dtype=np.uint8)
# 计算卷积核的中心点坐标
center = kernel_size // 2
# 对图像进行遍历
for i in range(center, rows - center):
for j in range(center, cols - center):
# 对卷积核进行遍历,并计算卷积和
sum = 0
for k in range(-center, center + 1):
for l in range(-center, center + 1):
sum += img[i + k][j + l]
# 将卷积和除以卷积核大小,得到均值,并将其赋值给结果图像
result[i][j] = sum // (kernel_size ** 2)
return result
# 读取图像
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
# 进行均值滤波,卷积核大小为3x3
result = mean_filter(img, 3)
# 显示原始图像和均值滤波后的结果
cv2.imshow('Original Image', img)
cv2.imshow('Mean Filtered Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`img` 表示输入的图像,`kernel_size` 表示卷积核的大小,`result` 表示均值滤波后的结果。
阅读全文