第 3 章 空间域图像增强
学习目标:掌握"直接在像素空间操作像素/邻域"的所有经典算法。 本章是图像处理教材的"核心应用第一章",公式密集但直觉清晰——每种技术都对应一个具体的工程问题。
3.1 什么是"空间域"增强?
3.1.1 术语辨析:增强 vs 复原
初学者很容易混淆这两个词:
| 概念 | 目标 | 依据 | 本章讲 | 对应章节 |
|---|---|---|---|---|
| 增强 (Enhancement) | 让图像看起来更好 | 主观视觉、经验 | ✅ | 第 3、4 章 |
| 复原 (Restoration) | 让图像还原为未退化的样子 | 客观模型(PSF、噪声) | ❌ | 第 5 章 |
简记:
- 增强 = 美图秀秀("好看就行")
- 复原 = 刑侦降噪("必须是真实的样子")
增强的评判标准是主观感受——因此同一张图不同场景下"最好的"增强方法可能不同。
3.1.2 空间域的数学定义
定义 3.1(空间域处理):设输入图像 ,处理算子 ,输出
则称 为空间域算子,如果:
- 的输出 仅依赖于 在点 或其某个邻域 内的像素值。
由邻域大小分类:
| 邻域类型 | 名称 | |
|---|---|---|
| 单点 | 点变换 / 灰度映射 | |
| 小窗 | 邻域 | 邻域运算 / 空间滤波 |
| 全图 | 整幅图 | 全局变换(如 HE) |
点变换: 邻域运算: ┌───┬───┬───┐ (x, y) │ │ │ │ │ ├───┼───┼───┤ T[·] │ │★ │ │ ← 中心像素 │ ├───┼───┼───┤ ▼ │ │ │ │ g(x, y) └───┴───┴───┘ T[整个窗口]3.1.3 空间域 vs 频率域:地位的等价性
卷积定理(第 4 章详证)保证:任何线性空间邻域运算都可以等价地在频率域用乘法实现:
因此,理论上空间域能做的滤波,频域都能做。选择依据只剩工程层面:
| 场景 | 首选 | 原因 |
|---|---|---|
| 核小(≤ 7×7) | 空间域 | 缓存友好、常数小 |
| 核大(≥ 31×31) | 频率域 | FFT 的 碾压 |
| 非线性操作(中值、双边) | 空间域 | 频域无定义 |
| 设计带阻/陷波 | 频率域 | 在频域"画一笔"即可 |
记住:空间域直观、频率域优雅。本章学前者,第 4 章学后者,它们是同一枚硬币的两面。
3.2 基本灰度变换(点变换)
3.2.1 通式
定义 3.2(灰度变换 / LUT):无邻域信息的点变换可写为
其中 是输入灰度, 是输出灰度, 是单调(通常)函数。
工程实现诀窍:把 预先算成长度 256 的查找表(LUT),然后对整幅图做数组下标取值——这比逐像素算函数快 10-100 倍。
# 把 T 离散化成 LUT,一次性完成table = np.array([T(r) for r in range(256)], dtype=np.uint8)out = table[img] # numpy 高级索引,向量化# 或等价的:cv2.LUT(img, table)3.2.2 图像反转 (Negative)
几何含义: 是一条从 到 的直线,经过对角线反射。
应用场景:
- 医学 X 光片:骨骼吸收多 → 胶片亮 → 背景黑;医生习惯看"黑色骨骼白色背景",反转后更符合直觉。
- 夜间摄影反相:凸显暗部细节。
原图: 0 █████░░░ 255 反转: 0 ░░░█████ 255 暗 → 亮 亮 ← 暗3.2.3 对数变换
加 1 防止 。 的取值使得 时 ,恰好填满动态范围。
关键性质(必考):
- 小时, 曲线斜率大 → 暗部被拉伸
- 大时,斜率小 → 亮部被压缩
物理根源(与第 1 章呼应):
- 韦伯定律:人眼对亮度的感知接近对数
- 自然图像的动态范围往往 以上(太阳 vs 阴影),直接显示会丢失大量细节
- 对数变换 ≈ 模拟人眼响应
经典应用——傅里叶频谱可视化:
不做 log,直接 imshow(|F|) 只看到中心一个亮点,其他全黑。这就是为什么第 4 章画频谱永远要先 np.log1p。
3.2.4 幂律变换(Gamma 校正)
单参数 :
| 效果 | 典型值 | |
|---|---|---|
| 拉伸暗部,压缩亮部(类似 log) | 0.4(LCD 补偿) | |
| 无变化(直线) | - | |
| 拉伸亮部,压缩暗部 | 2.2(CRT 物理特性) |
Gamma 的历史渊源(重要!)
CRT 显示器的发光亮度与输入电压的关系近似为:
如果图像像素值线性地作为 ,那么显示出来的亮度 会比真实场景偏暗。为了补偿,图像在存储时就做 的反向预处理:
sRGB 色彩空间就标准化了这套流程。因此:
- 你看到的
uint8像素值不是线性光强度,而是 gamma 编码后的值 - 做任何线性计算(合成、HDR、去噪)前,要先"解码":
- 最后显示前再编码回去
⚠️ 这是图像处理中最大的坑之一。很多算法在 uint8 空间直接平均是错的,在 linear float 空间平均才对。
应用:暗图提亮
# 原图偏暗,用 γ=0.5 提亮gamma = 0.5lut = np.array([((i / 255.0) ** gamma) * 255 for i in range(256)], np.uint8)bright = cv2.LUT(img, lut)3.2.5 分段线性变换
单个幂律或对数都是"全局"变换,有时我们只想操作某段。
对比度拉伸 (Contrast Stretching)
常用三段折线把 的窄动态范围拉伸到 ,两侧压扁。
s ▲ L-1 ┤ ╱ │ ╱ │ ╱ ← 陡峭中段:强对比度 │ ╱ │ ╱ 0 ┤─┘ ┌──────────→ r r1 r2极端情形:令 ,,退化为阈值化(第 10 章 Otsu)。
灰度切割 (Gray-Level Slicing)
只保留某个灰度区间,其他置 0(或保持原值):
用于突出特定对象(如 CT 中某密度的组织)。
位平面切片 (Bit-Plane Slicing)
将 8-bit 图拆成 8 张二值图,第 位图:
观察(非常重要):
- 高位 (b7, b6):图像的主体结构
- 低位 (b0, b1):几乎是随机噪声
启示:
- 图像压缩只存高 4-5 位损失很小
- 隐写术 (Steganography) 把秘密信息藏在 b0 里,肉眼看不出
- 数字水印、指纹
3.3 直方图处理(本章重点,面试高频)
3.3.1 直方图的严格定义
定义 3.3(离散直方图):对 级灰度图 ,直方图是函数
归一化直方图(概率密度估计):
解释: 是"随机选一个像素,其灰度等于 "的概率。
3.3.2 从直方图判读图像
| 直方图形态 | 图像特点 |
|---|---|
| 集中在低灰度 | 偏暗(欠曝) |
| 集中在高灰度 | 偏亮(过曝) |
| 集中在中间窄区 | 低对比度(雾天、阴影) |
| 均匀分布 | 高对比度,细节丰富 |
| 双峰 | 前景 + 背景分明 → 适合阈值分割 |
偏暗: 偏亮: 低对比度: 高对比度:
█ █ █ █ █ █ █ █ █ ██ ██ ████ █ ███ █ ██ ████ █ █ █████ ██████ █████ █ ──────→ ──────→ ──────→ ──────→ 0 255 0 255 0 255 0 2553.3.3 直方图均衡化(HE)——理论推导
这是本章最重要的算法,必须会从头推导。
步骤 1:连续形式
假设灰度 是连续随机变量,概率密度 ,变换 为单调可微函数。
目标:让输出 服从均匀分布:
由概率密度的变换公式(雅可比):
设
(即 的累积分布函数 CDF 乘以 )
求导:
代入:
结论:只要 取成累积分布函数,输出就一定是均匀分布!
步骤 2:离散形式
然后取整:
注意:离散 HE 不能得到严格均匀直方图,只是近似。原因是取整合并了某些灰度级。
步骤 3:伪代码
输入:图像 f,大小 MN1. 计算 h[0..255] (直方图)2. 计算 CDF: C[k] = C[k-1] + h[k]3. 归一化: s[k] = round((L-1) * C[k] / MN)4. 输出: g(x, y) = s[ f(x, y) ]import numpy as np
def my_equalize(img, L=256): h, _ = np.histogram(img.ravel(), L, (0, L)) cdf = h.cumsum() cdf_min = cdf[cdf > 0].min() # 关键:减 cdf_min,使得最小值映射到 0 s = np.round((cdf - cdf_min) / (img.size - cdf_min) * (L - 1)).astype(np.uint8) return s[img]HE 的几何直觉
一句话记忆:"把 CDF 当作映射函数"。
- 原图 CDF 中"陡峭"的部分 → 对应直方图高峰 → 被拉伸
- 原图 CDF 中"平坦"的部分 → 对应直方图低谷 → 被压缩
效果是把直方图**"摊平"**。
HE 的局限性
HE 是全局的操作。问题:
- 会放大噪声:平坦区域(如墙面)被不必要地拉伸
- 会丢失局部细节:一张有亮天空 + 暗地面的图,HE 倾向于妥协
- 伪轮廓:离散取整合并灰度级
3.3.4 CLAHE:限制对比度自适应直方图均衡
为解决全局 HE 的局限,Zuiderveld 1994 提出 CLAHE:
核心思想:
- 分块:把图分成 个小区域(tile,如 8×8)
- 每块独立 HE
- 限幅 (Clip Limit):每块直方图中超过阈值的频次被"削掉",均匀分给其他 bin
- 双线性插值:像素位置处于几个 tile 之间时,用插值平滑,避免 tile 边界的块状伪影
限幅的意义:
- 若某 bin 的高度远超阈值,说明这里有大块平坦区,做 HE 会放大这里的噪声
- 限幅 = 抑制噪声放大 + 仍保留对比度增强
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))result = clahe.apply(gray)参数经验:
| 参数 | 作用 | 建议 |
|---|---|---|
clipLimit | 噪声抑制强度 | 2-4(越大增强越强) |
tileGridSize | 局部区域大小 | 8×8(随图大小调整) |
CLAHE 在医学成像、低光照相机预处理中几乎是默认选择。
3.3.5 直方图匹配(规定化)
有时我们不想要"均匀",而想让输出图具有指定的直方图形状 (来自参考图像)。
推导(利用 HE 的双向性):
- 对输入做 HE:
- 对参考做 HE:
- 由于两者 HE 后都是均匀分布,可以匹配:
- 因此
伪代码:
1. 对 src 计算 CDF_s2. 对 ref 计算 CDF_r3. 对每个 r,找最接近的 z 使 CDF_r(z) ≈ CDF_s(r)4. 建立 LUT: r → z应用:
- 多模态医学图像归一化(不同设备亮度分布统一)
- 风格迁移的预处理(把夕阳照片的亮度分布迁移到白天照片)
- 卫星影像时序一致性
3.4 空间滤波的基础理论
3.4.1 核心概念:邻域、核、模板
邻域 :以 为中心的一个小窗口。 核 / 掩模 / 模板 (Kernel / Mask):附着在邻域上的权重矩阵 。
3.4.2 相关 vs 卷积(必须搞清楚)
这是图像处理的地基性定义,很多人搞混。
相关 (Correlation):核"直接"扫过图像
卷积 (Convolution):核先**翻转 180°**再扫
相关:w 直接"贴"上去 卷积:w 先反射再"贴"
核 w: 反射核 w': 1 2 3 9 8 7 4 5 6 6 5 4 7 8 9 3 2 1几何对称的核(如均值、高斯、拉普拉斯)下,相关 = 卷积。非对称(如 Sobel)下,两者差一个翻转。
为什么信号处理教材偏爱卷积?
因为卷积满足以下良好性质(相关则不满足):
| 性质 | 卷积 | 相关 |
|---|---|---|
| 交换律 | ✅ | ❌ |
| 结合律 | ✅ | ❌ |
| 分配律 | ✅ | ✅ |
| 与 FT 对应 | ✅ | 部分 |
因此教材公式写卷积,但工程实现用相关(OpenCV filter2D 其实是相关)——对称核下结果一致,非对称核需要事先翻转。
LSI 系统(线性移不变系统)
定义 3.4:若算子 同时满足
- 线性:
- 移不变:
则称 为 LSI 系统。
重要定理:任何 LSI 系统 都等价于与某个固定核做卷积。这是整个"滤波"理论的根基。
3.4.3 边界处理(工程必知)
当核中心靠近图像边界时,邻域"伸出"图像,需要虚构边界外的值。OpenCV 边界类型:
| 标志 | 效果 | 图示 (原始 abcd) |
|---|---|---|
BORDER_CONSTANT | 填指定值(默认 0) | 0000|abcd|0000 |
BORDER_REPLICATE | 复制边缘 | aaaa|abcd|dddd |
BORDER_REFLECT | 反射(不含边缘) | dcba|abcd|dcba |
BORDER_REFLECT_101 | 反射(含边缘)默认 | dcb|abcd|cba |
BORDER_WRAP | 循环 | abcd|abcd|abcd |
经验选择:
- 一般滤波:
REFLECT_101(最平滑) - 卷积神经网络:
CONSTANT(0)(简单,配合 padding) - DFT 计算:
CONSTANT(0)或WRAP(对应循环卷积)
3.5 平滑(低通)滤波
目标:减少灰度剧烈变化,也就是抑制高频。用途:
- 去噪
- 减小细节(模糊背景、美化肤色)
- 作为其他算法的预处理(如 Canny、SIFT、特征匹配)
3.5.1 均值滤波(Box / Moving Average)
定义
核:
数学推断:为什么能去噪?
假设观测 , 是零均值独立噪声,方差 。
对 邻域求平均:
由于独立:。
结论:噪声标准差降低为原来的 。核越大去噪越狠,但同时也模糊了信号,这就是"去噪-保边"的根本矛盾。
缺点
- 对边缘(信号的高频成分)同样模糊,造成"糊边"
- 核呈矩形→ 频域为 sinc → 通带外有旁瓣 → 产生"箱效应"
工程加速:积分图
均值滤波可以用积分图 (Summed Area Table) 做 每像素:
S(x, y) = f(x, y) + S(x-1, y) + S(x, y-1) - S(x-1, y-1)区域和 = S(x2,y2) - S(x1-1,y2) - S(x2,y1-1) + S(x1-1,y1-1)3.5.2 高斯滤波(最常用平滑)
定义
核心参数 (标准差):
- 小 → 核窄 → 轻微模糊
- 大 → 核宽 → 重度模糊
核尺寸经验公式:(奇数),即取到 处(覆盖 99.7% 能量)。
高斯的三大优良性质
性质 1:可分离性
即二维高斯 = 两个一维高斯的乘积。这意味着 卷积可以拆成两次 点一维卷积:
| 实现 | 复杂度 |
|---|---|
| 直接二维卷积 | 每像素 |
| 先行后列可分离 | 每像素 |
时加速 12 倍以上。OpenCV 内部自动分离。
性质 2:时频同形
高斯函数的傅里叶变换仍然是高斯:
- 空间上窄 频率上宽
- 不产生振铃(Gibbs)——无旁瓣
这使高斯成为最优 LSI 低通(在时频同时最紧)。
性质 3:中心极限定理
多次卷积趋近高斯:任意核 自我卷积 (n 次), 时趋近高斯分布。
工程含义:多次均值滤波可以近似高斯滤波。
实现要点
# 方式 1:推荐blur = cv2.GaussianBlur(img, (0, 0), sigma) # k=0 表示按 σ 自动算
# 方式 2:手动指定 kblur = cv2.GaussianBlur(img, (5, 5), 1.0)金科玉律:指定 比指定核大小更重要。
3.5.3 中值滤波(非线性)
定义
非线性:不能写成 。
为什么对椒盐噪声有效?
- 椒盐噪声 = 孤立极值(0 或 255)
- 邻域 像素中,少数几个异常值一定排在排序的极端
- 中值取中间 → 异常值被"投票丢弃"
- 边缘像素仍是多数,因此边缘保留较好
均值 vs 中值的对比
| 特征 | 均值 | 中值 |
|---|---|---|
| 数学类型 | 线性 | 非线性 |
| 对高斯噪声 | 最优(MMSE) | 可用但不如均值 |
| 对椒盐噪声 | ❌ 扩散脉冲 | ✅ 强鲁棒 |
| 边缘保留 | ❌ 糊边 | ✅ 好 |
| 可分离 | ✅ | ❌ |
| 复杂度 | 可 | 每点排序 |
高级变体
- 加权中值滤波:对邻域位置加权(离中心远的权重小)
- 自适应中值滤波:窗口自动扩大直到能找到非极值,极端椒盐(>50%)下仍有效
- Vector Median (VMF):用于彩色图,避免"新颜色"
3.5.4 双边滤波(保边滤波的经典)
动机
高斯滤波只看空间距离,把边缘两侧的像素一起平均 → 糊边。 双边滤波同时考虑空间距离和灰度差异:只平均灰度相近的邻居 → 保边去噪。
公式
其中 是归一化因子:
分解理解:
- :空间高斯(离中心越远权重越小)
- :灰度高斯(灰度差越大权重越小)
- 两者相乘 → 既近又相似的邻居才参与平均
参数直觉
| 参数 | 含义 | 效果 |
|---|---|---|
d | 邻域直径(或 推算) | 大 → 平滑范围大 |
sigmaColor () | 灰度差容忍度 | 大 → 接近高斯平滑(失去保边) |
sigmaSpace () | 空间衰减速度 | 同上 |
经典选择(8-bit 图):
- 磨皮美颜:
d=9, sigmaColor=50, sigmaSpace=50 - 轻度去噪:
d=5, sigmaColor=20, sigmaSpace=5
复杂度问题
原始实现 每像素,不可分离(因为 依赖于中心像素)。
加速算法:
- Bilateral Grid (Paris 2006)
- Permutohedral Lattice
- Guided Filter (He 2010):线性时间,效果接近,常被替代
3.5.5 非局部均值 (NLM)
思想:不只看邻域,而看全图中相似的 patch。
是以 为中心的小 patch(如 7×7)。
直觉:在自然图像中,同一内容(如墙面纹理)会在不同位置重复出现。平均这些重复的 patch 能极大程度去噪而保持结构。
缺点:原始 很慢,OpenCV fastNlMeansDenoising 做了加速(但还是几种方法中最慢的)。
BM3D 是 NLM 的升级版:对相似 patch 堆叠做 3D 变换 + 协同滤波,是非深度方法中的SOTA。
3.5.6 平滑方法对比表
| 方法 | 类型 | 高斯 | 椒盐 | 保边 | 速度 | 复杂度 |
|---|---|---|---|---|---|---|
| 均值 | 线性 | ✅ | ❌ | ❌ | 极快 | * |
| 高斯 | 线性 | ✅✅ | ❌ | ❌ | 快 | |
| 中值 | 非线性 | ⚪ | ✅✅ | ⚪ | 中 | |
| 双边 | 非线性 | ✅ | ⚪ | ✅ | 慢 | |
| NLM | 非线性 | ✅ | ⚪ | ✅✅ | 极慢 |
* 积分图加速
3.6 锐化(高通)滤波
目标:突出灰度剧变(边缘、细节)。基于微分。
3.6.1 从微分到差分
连续函数的微分:
离散图像只能用差分。有三种方案:
| 差分 | 公式 | 精度 |
|---|---|---|
| 前向 | 1 阶 | |
| 后向 | 1 阶 | |
| 中心 | 2 阶 |
实际用中心差分,精度高且对称。
3.6.2 一阶微分算子
梯度向量
图像梯度:
幅值 (magnitude):
方向 (angle):
梯度的几何意义:
- 幅值 → 边缘强度
- 方向 → 边缘法线(垂直于边缘)
Roberts 交叉梯度
2×2、对角差分。缺点:对噪声敏感、没有对称中心。已被淘汰。
Prewitt 算子(3×3)
每一行"平均"三行后求差分 → 自带平滑,比 Roberts 抗噪。
Sobel 算子(最常用)
Prewitt 的基础上给中央行加权 2 → 更强的平滑。 Sobel 是所有经典算子中平滑与定位平衡最好的。
Sobel 核的分解(再次体现可分离):
第一项是平滑(高斯近似),第二项是差分。
Scharr 算子
相比 Sobel 更强调中心行,有更好的旋转不变性(各向同性更接近理想)。
3.6.3 二阶微分:拉普拉斯算子
定义
二阶差分:
两方向相加:
核(4-邻域):
8-邻域版本加上对角:
性质
- 各向同性(旋转不变, 更接近理想)
- 中心权重为负(其他行权重之和 = 中心绝对值)→ 直流(DC)响应为 0,对平坦区无响应
- 边缘处正负过零点 (zero-crossing) → 标记边缘位置
灰度跃变: 一阶导: 二阶导: ___ ___ ▲ ___ ▲ │ ▲ ___ │ │ │ ───── ───── │ ▼ 过零点!3.6.4 锐化的核心思想
原理:原图 + 适当比例的边缘图 → 锐化图。
拉普拉斯锐化
为什么是减号? 因为拉普拉斯核中心为负 或 ,公式等价于
直觉:在边缘处(二阶导绝对值大)增强原像素。
非锐化掩蔽 Unsharp Masking(专业后期锐化)
流程:
f ── 高斯模糊 ──> f_blur │ └──── 减 ──> mask = f - f_blur (高频信息) │ │ × k ▼f ──── 加 ──> g = f + k × mask公式:
参数 k:
- :标准 Unsharp
- :High-Boost 滤波(强锐化)
- :变为平滑(极端情况)
为什么 Unsharp Masking 比拉普拉斯好?
- 可调 → 可控"锐化尺度"(只锐化大尺度边缘还是细节)
- 可选用双边代替高斯 → 锐化细节但不放大噪声(人像修图常用)
经典商用锐化参数(Photoshop 风格)
| 参数 | 作用 | 典型值 |
|---|---|---|
| Amount | 50-200% | |
| Radius | 1-3 | |
| Threshold | 屏蔽小幅差异 | 0-20 |
3.6.5 梯度与二阶微分的对比
| 特征 | 梯度 (一阶) | 拉普拉斯 (二阶) |
|---|---|---|
| 响应"台阶状边缘" | 厚线(峰) | 过零点(薄线) |
| 响应"缓坡" | 持续响应 | 起止点响应 |
| 对噪声 | 较鲁棒 | 极敏感(需先平滑 → LoG) |
| 方向信息 | ✅() | ❌ |
| 用途 | Canny、特征检测 | 斑点检测、锐化 |
3.7 高阶算法:结合应用流水线
3.7.1 经典图像增强流水线
原图 │ ├─ Step 1: Gamma 校正 (压缩动态范围) │ ├─ Step 2: CLAHE (局部对比度) │ ├─ Step 3: 双边/NLM (保边去噪) │ ├─ Step 4: Unsharp Mask (锐化细节) │ └─ Step 5: 可选 sRGB → Linear 再处理 ▼输出3.7.2 工业例子:手机 HDR
步骤:
- 捕获多曝光(-2EV, 0, +2EV)
- 对齐 (光流/特征)
- 融合:Mertens 曝光融合(多分辨率金字塔,第 7 章)
- 色调映射 (Tone Mapping):log/gamma
- 局部对比度:CLAHE
- 去噪:NLM / BM3D
- 锐化:Unsharp Mask
- sRGB 编码
3.8 本章要点与面试考点
✅ 必须掌握
- 点变换通式 ,LUT 工程实现
- Gamma、对数变换的公式与曲线形状
- 直方图均衡化 完整推导(从 CDF 到离散实现)
- CLAHE 的两个关键词:分块 + 限幅
- 均值/高斯/中值/双边的公式、直觉、适用噪声、复杂度
- 高斯的三大性质:可分离、时频同形、中心极限
- Sobel / Laplacian 模板与符号
- Unsharp Masking 公式
💡 高频面试题
Q1. 推导直方图均衡化的变换函数。
要点:设 ,要求 均匀 → 由 → = CDF × (L-1)。
Q2. 均值滤波为什么会糊边?
答:边缘处像素灰度发生突变,均值把两侧灰度拉向中值 → 边界两侧的对比度被削弱。可以从频域理解:均值核 FT 为 sinc,对高频(边缘)抑制不充分,但仍降低其幅度。
Q3. 如何选择 Gaussian σ?
答: 决定"模糊尺度",经验公式 覆盖 99.7% 能量。工程中:
- 去中等噪声 σ=1
- Canny 预处理 σ=1-2
- 磨皮 σ=3-5
Q4. 给定含椒盐噪声的图,用哪种滤波?
答:中值滤波。均值/高斯会把脉冲"扩散"成 smooth 斑点;中值取排序中点,极值自动被抛弃。如果椒盐比例很高(>30%),用自适应中值。
Q5. 双边滤波为什么能保边?
答:相比高斯,多了一项灰度差高斯。当邻域像素灰度与中心差异大(即穿过边缘),权重急剧下降 → 只平均边缘同一侧的像素,边缘不被跨越平均。
Q6. Unsharp Masking 与拉普拉斯锐化的差别?
答:
- 拉普拉斯:直接用二阶导;对噪声极敏感,且尺度固定(3×3)
- Unsharp:用 Gaussian Blur 的差;可通过 σ 控制"锐化尺度",可用双边抑噪 → 工程首选
Q7. HE 为什么在某些图上效果很差?
答:HE 是全局操作。当图中存在明显光照差异(如半边阳光半边阴影)时,HE 用统一 CDF 无法兼顾;过度拉伸平坦区域会放大噪声。→ 换 CLAHE 解决。
Q8. 高斯核为什么被广泛使用?
三大原因:
- 可分离 → 实现快
- 傅里叶对偶为高斯 → 无振铃,时频紧
- 中心极限定理 → 多次其他低通的极限都趋近高斯,所以它是"最自然"的低通
3.9 延伸阅读
- Gonzalez, Digital Image Processing (4th ed.), Ch. 3(空间域全章)
- Szeliski, Computer Vision (2nd ed.), §3.1-3.3
- Burger & Burge, Principles of Digital Image Processing: Fundamentals, Ch. 4-5
- Pratt, Digital Image Processing, Ch. 9
- Paris & Durand, "A Fast Approximation of the Bilateral Filter"(2006,SIGGRAPH)
- Zuiderveld, "Contrast Limited Adaptive Histogram Equalization"(1994,Graphic Gems IV)
下一章:把所有空间域滤波"搬到"频率域去,看它们换了一种面貌会多么优雅——那就是卷积定理的威力。
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時





















