中值滤波算法及例程

中值滤波是一种常用的非线性图像滤波算法,它能够有效去除图像中的椒盐噪声(即孤立的亮或暗像素点),同时保持图像边缘和细节的清晰度。中值滤波的主要思想是使用一个滑动窗口,在窗口内对像素值进行排序,并将排序后的中间值作为中心像素的新值。

以下是中值滤波的算法步骤:

  1. 定义滑动窗口的大小,通常为一个正方形或矩形。

  2. 在图像上遍历每个像素。

  3. 对于每个像素,获取其周围邻域内的像素值,并将其放入一个数组或列表中。

  4. 对这个数组或列表进行排序,找到其中值。

  5. 将中值赋给当前像素作为滤波后的值。

  6. 重复步骤2-5,直到遍历完整个图像。

中值滤波算法的关键在于选择合适的窗口大小,较小的窗口大小可以更好地保留图像细节和边缘特征,但可能无法有效去除较大的噪声;而较大的窗口大小可以更好地平滑图像,但可能会模糊细节。

需要注意的是,中值滤波算法对于消除椒盐噪声效果良好,但对于其他类型的噪声(如高斯噪声)可能效果不佳。在实际应用中,可以根据具体的噪声类型和需求选择合适的滤波方法。

以下是一个使用Python实现的中值滤波例程:

复制代码
import cv2
import numpy as np

def median_filter(image, kernel_size):
    # 获取图像的宽度和高度
    height, width = image.shape[:2]
    
    # 创建一个与原图像相同大小的空白图像
    filtered_image = np.zeros_like(image)
    
    # 计算中值滤波的卷积核大小
    kernel_half = kernel_size // 2
    
    # 对图像进行遍历
    for i in range(height):
        for j in range(width):
            # 获取每个像素的周围邻域像素
            neighborhood = image[max(0, i - kernel_half):min(height, i + kernel_half + 1),
                                 max(0, j - kernel_half):min(width, j + kernel_half + 1)]
            # 计算邻域像素的中值,并赋值给当前像素
            filtered_image[i, j] = np.median(neighborhood)
    
    return filtered_image

# 读取图像
image = cv2.imread('input.jpg', 0)  # 以灰度图像方式读取

# 应用中值滤波器
filtered_image = median_filter(image, kernel_size=3)

# 显示原图像和滤波后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Filtered Image', filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上代码中,我们定义了一个名为median_filter的函数,它接受一个图像和一个滤波器大小作为参数,并返回滤波后的图像。在函数内部,我们通过遍历图像的每个像素,获取周围邻域像素的值,并使用np.median函数计算中值,然后将中值赋值给当前像素。最后,我们使用cv2.imshow函数显示原图像和滤波后的图像,并使用cv2.waitKey和cv2.destroyAllWindows等函数来管理窗口显示和关闭。

请确保在运行示例代码前,将'input.jpg'替换为你自己的图像文件路径。

相关推荐
只是甲8 小时前
Text2SQL 系列博客 02:技术原理深度剖析 - 从自然语言到 SQL 的完整链路
人工智能·text2sql·nl2sql·ai agent·自助数据分析·data agent·agentic 数据洞察
懷淰メ8 小时前
【AI赋能】基于PyQt+YOLO+DeepSeek水上漂浮物检测系统(详细介绍)
人工智能·yolo·目标检测·计算机视觉·pyqt·漂浮物·水上漂浮物
EQUINOX18 小时前
【论文精读】| CLIP精读
大数据·人工智能
PC2005-cloud8 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
weixin_408099678 小时前
2026 图片去文字 API 实战:AI一键去除图片文字(附 Python / Java / PHP / JS 完整代码)
人工智能·api接口·图片去水印·石榴智能·ai图像修复·图片去文字
greenbbLV9 小时前
2026节日慰问品政策解读:合规标准升级与福利行业新趋势
人工智能·节日
奈斯先生Vector9 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
领麦微红外9 小时前
国产MEMS红外测温传感器:传感器+算法+产品级出厂标定一站式交付模式深度解读
人工智能·硬件工程·产品经理
mingo_敏9 小时前
DeepAgents : 检索(Retrieval)
人工智能·深度学习·langchain
微三云 - 廖会灵 (私域系统开发)9 小时前
消费即资产:积分增值异业联盟商业模式完整拆解(附落地逻辑、合规方案与盈利模型)
大数据·人工智能