编写一个能对图像进行几何均值滤波的小程序。
时间: 2024-11-24 08:44:04 浏览: 6
编写一个简单的Python程序,使用OpenCV库来进行图像的几何平均滤波(也称为中值滤波),通常用于平滑图像并去除噪声。下面是一个基本的示例:
```python
import cv2
import numpy as np
def geometric_median_filter(image, kernel_size):
# 将图像转换为灰度,如果已经是灰度图则不需要这一步
if len(image.shape) == 3 and image.shape[2] == 3:
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 应用几何均值滤波
blurred_image = cv2.medianBlur(image, kernel_size)
return blurred_image
# 加载图像
input_image = cv2.imread('input.jpg', 0)
# 定义滤波核大小
kernel_size = 5
# 进行滤波操作
filtered_image = geometric_median_filter(input_image, kernel_size)
# 显示原图和处理后的图像
cv2.imshow("Original Image", input_image)
cv2.imshow("Geometric Median Filtered Image", filtered_image)
# 等待用户按键,然后关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个程序中,`geometric_median_filter`函数接收一张图像和滤波核大小作为输入,然后应用中值滤波算法。中值滤波是一种非线性滤波技术,它通过计算每个像素周围像素值的中位数来替换该像素,因此特别适用于去除椒盐噪声。
阅读全文