当前位置: 首页 > news >正文

一文理解什么是中值模糊

目录

中值模糊的概念

中值模糊(Median Blur)

中值模糊的原理

示例:3×3 中值模糊

什么是椒盐噪声

椒盐噪声(Salt-and-Pepper Noise)

椒盐噪声的特点

OpenCV 中的 cv2.medianBlur()

函数格式

示例代码

中值模糊 vs 其他模糊方法

适用场景

总结


中值模糊的概念

中值模糊(Median Blur)

        中值模糊(Median Blur)是一种 非线性滤波 方法,主要用于 去除椒盐噪声(Salt-and-Pepper Noise)(后文会解释什么是椒盐噪声),并且 能够较好地保留图像的边缘。它的核心思想是:

窗口(滤波核)内所有像素的中值 取代中心像素的值。


中值模糊的原理

中值模糊(Median Blur)是一种 非线性滤波 方法,它的核心思想是:

用局部窗口(滤波核)中的像素中值来替换中心像素值,从而去除椒盐噪声,并保留边缘信息。

        它不同于均值滤波(Mean Filtering)高斯滤波(Gaussian Filtering),它不计算均值或加权均值,而是直接选择排序后中间的值。

示例:3×3 中值模糊

假设有一个 3×3 的像素窗口:

[ 10, 200, 15 ]
[  5, 250, 20 ]
[  0, 100, 30 ]
  • 先对这些像素值排序:

    [0, 5, 10, 15, 20, 30, 100, 200, 250]

  • 中间值(第 5 个):20

  • 替换窗口中心像素(25020

这样就减少了椒盐噪声的影响,同时保留了边缘信息。


什么是椒盐噪声

椒盐噪声(Salt-and-Pepper Noise)

椒盐噪声是一种常见的图像噪声类型,它的特点是:

在图像中随机出现白色(Salt)和黑色(Pepper)像素点,就像图像被撒上了“盐”和“胡椒”一样,因此得名。

椒盐噪声的特点

  1. 随机出现:椒盐噪声通常是随机分布的,每个像素有一定概率被噪声污染。

  2. 极端像素值

    • “Salt”(盐噪声)是 255(白色) 的像素点。

    • “Pepper”(胡椒噪声)是 0(黑色) 的像素点。

  3. 破坏性强:椒盐噪声对图像影响较大,特别是对边缘和细节部分。

  4. 通常由传输或传感器错误引起

    • 传输错误:图像在无线传输或压缩时可能引入椒盐噪声。

    • 传感器故障:相机或扫描仪的传感器问题可能导致像素随机变黑或变白。


OpenCV 中的 cv2.medianBlur()

函数格式

cv2.medianBlur(src, ksize)
  • src:输入图像(可以是灰度图或彩色图)。

  • ksize:滤波窗口大小(必须是 奇数,如 3、5、7)。

    • ksize=3 → 3×3 窗口

    • ksize=5 → 5×5 窗口

    • 不能是偶数,否则会报错!

示例代码

 
import cv2

# 读取图像
img = cv2.imread('./imgs/001.png')

# 应用中值模糊,核大小为 5
median_blur = cv2.medianBlur(img, 7)

gaussian_blur = cv2.GaussianBlur(img, (7, 7), 0)

# 显示结果
cv2.imshow('Original', img)
cv2.imshow('Median Blur', median_blur)
cv2.imshow('Gaussian Blur', gaussian_blur)

cv2.waitKey(0)

cv2.destroyAllWindows()

cv2.destroyAllWindows()

原图

效果如下:

 那其实就可以看出来了,中值模糊对于这样的椒盐噪声效果很好的嘻嘻。

原图

效果

高斯模糊来这里就纯属是捣乱的,中值模糊对于一些点稍微没有那么大的还是可以完美清除的,但是太大了,一些比ksize还大的,几乎只能去个棱角没办法了。


中值模糊 vs 其他模糊方法

滤波方法计算方式适用场景备注
均值模糊 cv2.blur()计算窗口内所有像素的 均值适用于一般模糊会模糊边缘
高斯模糊 cv2.GaussianBlur()计算 加权均值(中心像素权重大)适用于去噪和平滑适当保留边缘
中值模糊 cv2.medianBlur()窗口像素的中值去椒盐噪声,保留边缘处理速度较慢

适用场景

去椒盐噪声(黑白点状噪声)。
保留边缘信息(不会模糊边界)。
适用于灰度图和彩色图(每个通道独立处理)。


总结

  • 中值模糊 通过 取中值 代替均值,能有效去除椒盐噪声,并且不会模糊边缘

  • 适用于图像去噪,特别是 椒盐噪声清理

  • 核大小必须是奇数,一般选择 ksize=3ksize=5

图像有 椒盐噪声cv2.medianBlur() 选他!

http://www.dtcms.com/a/111196.html

相关文章:

  • C++多线程函数介绍
  • 【Kafka基础】ZooKeeper在Kafka中的核心作用:分布式系统中枢神经系统
  • 【LeetCode Solutions】LeetCode 141 ~ 145 题解
  • RocketMQ 中的 ProducerManager 组件剖析
  • 【Java Stream详解】
  • 提高:图论:强连通分量 图的遍历
  • Nginx功能及应用全解:从负载均衡到反向代理的全面剖析
  • OpenAI:人工智能领域的探索者与变革者
  • 黑马点评redis改 part 1
  • T-SQL语言的链表查找
  • eventEmitter实现
  • 网络建设与运维神州数码DCN MAC地址表操作
  • TypedDict和dataclass的优缺点对比
  • 前馈控制与反馈控制融合算法详解及python案例分析
  • JavaWeb学习--MyBatis-Plus整合SpringBoot的ServiceImpl方法(增加,修改与删除部分)
  • 深入解析:使用Python爬取Bilibili视频
  • 如何用DeepSeek进行SWOT分析?以CSDN的“C知道”为例
  • k8s的StorageClass存储类和pv、pvc、provisioner、物理存储的链路
  • 做一个Andriod系统应用的方法
  • 软件设计师之设计模式
  • 第七章 Python基础进阶-异常、模块与包(其五)
  • 手撕AVL树
  • 模运算核心性质与算法应用:从数学原理到编程实践
  • Julia语言的测试覆盖率
  • 卷积神经网络CNN 经典模型 — GoogleLeNet、ResNet、DenseNet算法原理与模型构造
  • Visual Basic语言的网络协议栈
  • AIGC时代Kubernetes企业级云原生运维实战:智能重构与深度实践指南
  • SpringAI整合Ollama集成DeepSeek
  • 搜索树——AVL、红黑树、B树、B+树
  • WinForm真入门(5)——控件的基类Control