5*5几何均值滤波器python代码
时间: 2024-05-16 12:12:09 浏览: 58
这是一个使用 Python 实现 5*5 几何均值滤波器的例子:
```
import numpy as np
def geometric_mean_filter(image, kernel_size):
# 创建一个零图像,用于存储滤波后的图像
filtered_image = np.zeros(image.shape)
# 获取图像的行数和列数
rows, cols = image.shape
# 获取滤波器的大小
kernel_size = kernel_size
# 计算滤波器的半径
kernel_radius = kernel_size // 2
# 遍历图像的每一行和每一列
for i in range(rows):
for j in range(cols):
# 初始化几何均值
geometric_mean = 1
# 遍历滤波器内的每一个像素
for m in range(-kernel_radius, kernel_radius+1):
for n in range(-kernel_radius, kernel_radius+1):
# 获取图像中对应的像素值
pixel = image[i+m, j+n]
# 计算几何均值
geometric_mean *= pixel
# 计算滤波后的像素值
filtered_image[i, j] = geometric_mean**(1/(kernel_size**2))
return filtered_image
# 读入图像并转换为灰度图
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 调用几何均值滤波器函数
filtered_image = geometric_mean_filter(image, 5)
# 显示滤波后的图像
cv2.imshow('Filtered Image', filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们使用了 numpy 库来处理图像。我们首先创建了一个零图像,用于存储滤波后的图像。然后我们获取了图像的