🌌 噪声类型:高斯噪声 VS 椒盐噪声
一、核心概念⚡
是什么?
1. 噪声 📡
定义:图像中的干扰因素,由采集设备、传输信道等引起,表现为随机异常像素值。
高斯噪声:
- 特点:像素值呈正态分布(高斯分布),使图像模糊、有颗粒感,类似 “蒙上雾气”。
- 成因:多由传感器噪声、光照不均等引起,如低光照下的拍摄噪声。
椒盐噪声:
- 特点:随机出现黑白像素点(0 或 255),像 “撒了盐和胡椒”,破坏图像干净度。
- 成因:信号传输错误、传感器故障等,如老照片上的斑点。
2. 滤波器 🧩
定义:通过滑动 “卷积核”(小区域矩阵)计算中心像素值的图像处理工具。
- 分类:
- 线性滤波:对邻域像素进行加权求和(线性运算),核值固定。
- ✅ 数学公式计算(如加权求和),适合均匀噪声
- 非线性滤波:基于像素值逻辑关系(如排序、阈值)计算,核值动态变化。
- ✅ 逻辑规则处理(如取中位数),适合极端值或边缘保护
- 线性滤波:对邻域像素进行加权求和(线性运算),核值固定。
3. 滤波与模糊的关系 🤝
- 联系:本质都是卷积运算,通过核滑动处理像素。
- 区别:
- 低频:变化缓慢的部分(大面积区域)
- 高频:快速变化的部分(边缘)
- 低通滤波器 = 模糊 = 去除高频噪声(如高斯/均值滤波)(去噪、平滑)
- 高通滤波器 = 锐化 = 强化高频边缘(如拉普拉斯算子)(增强边缘)
噪声类型 | 表现形式 | 对应滤波器 | 原理 |
---|---|---|---|
高斯噪声 | 整体模糊 | 均值/高斯滤波(线性) | 加权平均,削弱随机扰动 |
椒盐噪声 | 孤立斑点 | 中值滤波(非线性) | 取中位数,剔除极端值 |
🌌 线性滤波(均值/方框/高斯滤波)
一、核心概念⚡
均值滤波
- 用核内像素平均值替代中心像素,消除随机噪声
- ✅ 把周围像素颜色混在一起,模糊图像
方框滤波
- 均值滤波的推广,可选择是否归一化(归一化=均值滤波)
- ✅ 可以是求平均值,也可以是求和
高斯滤波
- 核内像素加权平均,权重按高斯分布,中心权重最高
- ✅ 更聪明的模糊,中间像素影响更大
二、用法 💐
1. 均值滤波 ☘️
dst = cv2.blur(src, ksize, dst=None, anchor=None, borderType=None)
参数
src
:输入图像ksize
:卷积核的大小,必须为奇数,如 (3, 3)dst
:输出图像,可选。anchor
:卷积核的锚点,可选,默认是(-1, -1)
,表示核的中心。borderType
:边界填充类型,默认边界反射101- 只有中值滤波默认使用边界复制
2. 方框滤波☘️
dst = cv2.boxFilter(src, ddepth, ksize, dst=None, anchor=None, normalize=None, borderType=None)
(1)参数
ddepth
:输出图像的深度,通常设为-1
表示和输入图像深度相同。- 图像深度是指在数字图像处理和计算机视觉领域中,每个像素点所使用的位数(bit depth),图像深度决定了图像能够表达的颜色数量或灰度级
normalize
:是否进行归一化,布尔值
(2)注意点:
- 当
normalize=True
时,和均值滤波相同;当normalize=False
时,表示求和,输出可能会超出像素值范围
3. 高斯滤波 ☘️
dst = cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
(1)参数
sigmaX
:高斯核标准差,值越大越模糊 (sigmaY默认和sigmaX相同)
(2)注意点:
- 高斯滤波更适合保留边缘,且高斯噪声处理首选高斯滤波
🌌 非线性滤波(中值/双边滤波)
一、核心概念⚡
中值滤波
- 取核内像素中值替代中心像素,有效去除椒盐噪声(去极端值)
双边滤波
- 同时考虑空间距离和像素值差异,保留边缘的同时去噪
- 两个高斯滤波结合
二、用法 💐
1. 中值滤波 ☘️
dst = cv2.medianBlur(src, ksize)
2. 双边滤波 ☘️
dst = cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
(1)参数
d
:邻域直径(越大越慢)sigmaColor
:颜色空间滤波器的标准差,控制颜色相似性。(值大则更多颜色混合)sigmaSpace
:坐标空间滤波器的标准差,控制空间距离相似性。
(2)注意点:
d=0
时自动由sigmaSpace
计算,通常设d=9
平衡速度与效果
🪺 小结
- 滤波器的选择
- 在不知道用什么滤波器好的时候:优先高斯滤波,然后均值滤波。
- 斑点和椒盐噪声 → 优先使用中值滤波。
- 要去除噪点的同时尽可能保留更多的边缘信息 → 双边滤波。
- 线性滤波方式:均值滤波、方框滤波、高斯滤波(速度相对快)。
- 非线性滤波方式:中值滤波、双边滤波(速度相对慢)。
- 边界填充:
- 中值滤波默认使用边界复制填充
BORDER_REPLICATE
- 其余滤波默认使用边界反射101填充
BORDER_REFLECT_101
- 中值滤波默认使用边界复制填充