第 7 章 小波变换与多分辨率分析
学习目标:理解"同时获得频率和位置"这一革命性思想,掌握图像金字塔、Haar/Daubechies 小波、2D-DWT 及其在去噪、压缩、融合中的应用。 本章是 20 世纪 80-90 年代信号处理的最大理论突破之一,哈佛数学系与贝尔实验室工程师联手的里程碑。
7.1 为什么需要小波?—— 傅里叶的局限
7.1.1 傅里叶的"空间无定位"问题
回忆第 4 章:傅里叶变换把信号分解为无穷长的正弦波。
这意味着:频率为 的分量在整个空间上都存在。 即使我们知道某信号含有频率 ,无法从频谱知道它出现在哪个位置。
类比:一首音乐先是低音后是高音,但傅里叶只能告诉你"这首歌里有低音和高音",不知道先后。
信号: ── 低频段 ── 高频段 ── 低频段 ── (x=0-10) (10-20) (20-30)
FT: 看到的是"低 + 高",没有时序信息7.1.2 短时傅里叶变换(STFT):第一次尝试
思路:把信号切成小块,每块做 FT。
其中 是窗函数(高斯、汉宁等)。
权衡困难(海森堡不确定原理):
- 窗口窄 → 时间定位好,但频率分辨率差
- 窗口宽 → 频率分辨率好,但时间定位差
STFT 用固定窗宽,无法同时满足低频(需要长观察)和高频(需要细定位)的需求。
7.1.3 小波的核心思想:多尺度
小波让"窗口大小"与频率自适应:
- 分析低频:窗口宽(长时间观察)
- 分析高频:窗口窄(短时间观察)
STFT 的时-频窗格: 小波的时-频窗格:
频率 ▲ 频率 ▲高 │□ □ □ □ □ │■ ■ ■ ■ ■ ← 高频:窄窗中 │□ □ □ □ □ │█ █ █ ← 中频低 │□ □ □ □ □ │██ ← 低频:宽窗 └──────→ 时间 └──────→ 时间这就是小波变换。核心:固定"时间×频率" 面积(不确定原理允许的最小),但形状自适应。
7.2 图像金字塔:直观的多分辨率
7.2.1 金字塔的概念
对一张图,反复下采样得到一系列尺寸递减的版本:
L0 (512×512) 原图L1 (256×256) /2L2 (128×128) /4L3 (64×64) /8...每层代表同一内容的不同尺度。远看轮廓 = 上层金字塔;近察细节 = 下层。
7.2.2 高斯金字塔 (Gaussian Pyramid)
构造:
L_{k+1} = Downsample(Gaussian_Blur(L_k))- 对 用 5×5 高斯核模糊(抗混叠)
- 每行每列取一半 → 尺寸减半
G = img.copy()pyr = [G]for _ in range(4): G = cv2.pyrDown(G) # 内部先高斯再下采样 pyr.append(G)性质:
- 每层尺寸 1/4,总存储 倍原图
- 每层对应一个带通频率
7.2.3 拉普拉斯金字塔 (Laplacian Pyramid)
Burt & Adelson 1983 提出。
核心:每层存储高斯金字塔相邻两层之差。
原图 G0 ──┬────────── L0 = G0 - Upsample(G1) │ ▼ G1 ──┬──────── L1 = G1 - Upsample(G2) │ ▼ G2 ──┬────── L2 = G2 - Upsample(G3) │ ▼ G3 (保留最粗层)关键性质:完美重建
重建: G_k = L_k + Upsample(G_{k+1})每层含义:该尺度下的细节(高频差分)。
能量集中性
拉普拉斯金字塔的绝大多数系数接近 0(自然图像的细节稀疏)。这是它被用于图像压缩、融合的关键。
7.2.4 经典应用:多尺度图像融合 (Burt & Adelson)
问题:把两张图在指定区域"无缝"融合(经典例子:把苹果和橘子融成"苹橘")。
简单方法:直接按掩膜拼接 → 边界有明显接缝。
多尺度融合:
1. 图 A, B 各自求拉普拉斯金字塔 L^A, L^B2. 掩膜 M 求高斯金字塔 G^M(平滑掩膜)3. 逐层加权混合: L^blend_k = L^A_k · G^M_k + L^B_k · (1 - G^M_k)4. 用 L^blend 重建出融合图像为什么奏效?
- 低频层掩膜宽 → 缓慢过渡(整体颜色/亮度融合)
- 高频层掩膜窄 → 锐利过渡(细节仅取一边)
现代变体:
- 曝光融合 (Mertens):多曝光 HDR,手机默认
- Poisson Blending:梯度域融合(Ch 9 会提到)
7.3 Haar 小波:最简单的小波
7.3.1 一维 Haar
尺度函数与小波函数
尺度函数(scaling / 低通):
小波函数(wavelet / 高通):
φ: ┌────┐ ψ: ┌──┐ │ │ │ │ │ │ │ └──┐───────┴────┴ ─ ──┴── 0 1 0 .5 1正交分解
对长度 2 的信号 ,一级 Haar 变换:
- :平均 / 低频 / 近似
- :差分 / 高频 / 细节
信息量不变(2 个输入 → 2 个输出),且正交(逆变换是转置)。
多级分解
对长度 的信号:
原信号 │ Haar ▼a1 (N/2), d1 (N/2) │ 对 a1 再做 Haar ▼a2 (N/4), d2 (N/4), d1 (N/2) ...最终:一个最粗的 + 多级细节 。 总系数数 = 原信号长度 (无冗余)。
7.3.2 二维 Haar(图像)
对 2D 信号,Haar 通过"先行后列"分解。
一级 2D 分解
原图 (M×N) │ 对每行做 1D Haar ▼左半 = 行均值 (M×N/2) 右半 = 行差分 (M×N/2) │ 对每列做 1D Haar │ 对每列做 1D Haar ▼ ▼(M/2 × N/2) (M/2 × N/2)┌────┬────┐│ LL │ HL │ LL: 低低频(近似)├────┼────┤ HL: 水平细节(垂直边缘)│ LH │ HH │ LH: 垂直细节(水平边缘)└────┴────┘ HH: 对角细节(对角边缘)- LL:图像的"缩略图"
- HL:图像的垂直边缘
- LH:图像的水平边缘
- HH:图像的对角/角点
多级分解:递归对 LL
┌──┬──┬──────┐│LL│HL│ │├──┼──┤ HL1 │ ← 2 级分解│LH│HH│ │├──┴──┼──────┤│ │ ││ LH1 │ HH1 │ ← 1 级分解│ │ │└─────┴──────┘金字塔式的多分辨率分解。
7.3.3 Haar 的物理意义
- 是平均算子(低通)
- 是差分算子(高通)
- 小波 = 对应于不同尺度 () 和位置 () 的平移缩放
Haar 的基函数:
所有这样的 构成 的正交基!(Haar 1909 的经典结果)
7.4 多分辨率分析 (MRA) 框架
Mallat & Meyer 1987-1989 给出"小波理论"的严格数学结构。
7.4.1 嵌套子空间
定义一系列子空间 ,满足:
- 嵌套:
- 稠密:
- 交空:
- 尺度关系:
- 平移不变性:
- 正交基存在:存在 使 是 的正交基
称尺度函数。
7.4.2 细节子空间
由嵌套关系 ,定义正交补:
称为细节子空间,其基:
称小波函数。
7.4.3 双尺度方程(Two-Scale Equation)
由 ,可写:
叫低通滤波器系数。类似地:
叫高通滤波器系数。
正交性约束
要求双滤波器组满足:
这就是 QMF(正交镜像滤波器) 条件。
7.4.4 MRA 的意义
任意函数 可分解为:
- :尺度 下的近似
- :各尺度细节
展开为系数:
这就是离散小波变换(DWT)。
7.5 离散小波变换(DWT)算法
7.5.1 Mallat 快速算法
思想:递归滤波 + 下采样。
信号 x │ ├── h_φ (低通) ──> 下采样 2 ──> a1 │ └── h_ψ (高通) ──> 下采样 2 ──> d1对 a1 再次分解:
a1 │ ├── h_φ ──> ↓2 ──> a2 │ └── h_ψ ──> ↓2 ──> d2复杂度:(相当于 FFT 的 更快!)
7.5.2 反变换(重建)
a_j, d_j │ ├── 上采样 2 ──> g_φ (低通) ──┐ │ ├── 相加 ──> a_{j-1} └── 上采样 2 ──> g_ψ (高通) ──┘完美重建条件:
正交小波下 (自对偶)。
7.5.3 2D DWT 实现
图像 │ 逐行 1D DWT ▼┌────┬────┐│ L │ H │ ← 每行分成低/高频│ │ │└────┴────┘ │ 逐列 1D DWT ▼┌────┬────┐│ LL │ HL │├────┼────┤│ LH │ HH │└────┴────┘代码(pywt):
import pywtcoeffs = pywt.wavedec2(img, 'db1', level=3)# coeffs = [cA3, (cH3, cV3, cD3), (cH2, ...), (cH1, ...)]# cA: approximation, cH/V/D: horizontal/vertical/diagonal detail
reconstructed = pywt.waverec2(coeffs, 'db1')7.6 常用小波族
7.6.1 Haar (db1)
- 最简单、不连续
- 阶跃边缘检测好
- 但紧支太小(2 抽头),频率选择性差
7.6.2 Daubechies (dbN)
Daubechies 1988 构造的正交紧支小波族。dbN 有 2N 个系数,支持长度 2N-1。
| 家族 | 系数数 | 消失矩 | 特点 |
|---|---|---|---|
| db1 (= Haar) | 2 | 1 | 不连续 |
| db2 | 4 | 2 | 几乎连续 |
| db4 | 8 | 4 | 光滑但不对称 |
| db10 | 20 | 10 | 很光滑,频域好 |
消失矩 :
消失矩高 → 对多项式信号响应为 0 → 图像稀疏表示好。
缺点:
- 非对称 → 重建有相位失真
- 没有解析表达式(只能通过迭代构造)
7.6.3 Symlets (sym)
Daubechies 的"近似对称"版本。
7.6.4 Coiflets (coif)
同时要求 和 都有消失矩(Daubechies 只要求 )。更对称但支持更大。
7.6.5 Biorthogonal (bior, rbio)
放弃正交性换取完美对称 + 完美重建(同时不可能)。
- 分析小波
- 合成小波
- 两者不同但满足双正交条件:
JPEG2000 使用 bior4.4(9/7 双正交小波),因为线性相位对图像压缩质量关键。
7.6.6 选型建议
| 场景 | 推荐 |
|---|---|
| 教学、简单 | Haar / db1 |
| 通用图像处理 | db4 / sym4 |
| JPEG2000 有损压缩 | bior4.4 (9/7) |
| 无损压缩 | bior5.3 (5/3 整数) |
| 边缘检测 | sym8 |
| 医学成像 | coif3 |
7.7 小波的应用
7.7.1 图像去噪(Donoho 软阈值)
思想:
- 自然图像的小波系数稀疏(少数大,多数近 0)
- 高斯噪声的系数密集(接近 0 附近的高斯)
- 把小幅度系数"削掉",保留大的 → 去噪
阈值函数:
硬阈值:
软阈值(更平滑):
硬阈值: 软阈值: │ / │ / │ / │ / │ / │ /──┼────── ──┼──/─── │\ │ / │ \ │/最优阈值:Donoho 给出通用阈值
是信号长度, 是噪声标准差(用最粗细节子带的 MAD 估计)。
算法:
1. DWT 多级分解2. 对每个细节子带 d_j 做阈值化 → d_j'3. IDWT 用 [a_J, d_J', ..., d_1'] 重建效果:比经典均值/高斯滤波好,边缘保留出色。
改进:BayesShrink、SUREShrink
- SUREShrink:用 Stein 无偏风险估计自动调阈值
- BayesShrink:假设系数服从拉普拉斯分布
- BM3D:结合小波 + 3D patch 堆叠,非深度学习的 SOTA
7.7.2 图像压缩
JPEG2000 概览
(第 8 章详讲)
- 5/3 整数小波(无损)或 9/7 浮点(有损)
- EBCOT 位平面编码
- 支持渐进解码、ROI、无损 ↔ 有损
相对于 JPEG 的优势:
- 无块效应(小波无分块)
- 同等质量下压缩率提高 20-30%
- 支持渐进传输(低带宽先看低分辨率)
劣势:专利、计算复杂、浏览器不支持 → 未普及。
7.7.3 多尺度边缘检测
每个 DWT 细节子带就是该尺度下的边缘响应:
- HH1:最细尺度(噪声 + 纹理)
- HH2:中尺度(小物体边缘)
- HH3:粗尺度(大物体轮廓)
Mallat-Zhong 算法:跨尺度追踪模极大值,做出多尺度 Canny。
7.7.4 图像融合
两张源图各自 DWT,对系数采用不同规则合并:
| 子带 | 融合规则 |
|---|---|
| LL (近似) | 加权平均(保持亮度) |
| HL / LH / HH (细节) | 取最大绝对值(选最清晰细节) |
应用:
- 多焦融合(近焦 + 远焦 → 全景深)
- 红外 + 可见光(夜视增强)
- MRI + CT(医学多模态)
7.7.5 图像隐写
LSB 隐写(第 3 章)易被统计检测。小波域隐写:
- 把秘密信息嵌入细节子带的 LSB
- 主观视觉几乎不变
- 抗 JPEG 压缩能力更强
7.8 时频局部化:小波与 STFT 的严格对比
7.8.1 海森堡不确定原理(量化时-频权衡)
定理 7.1:对任何函数 ,其时间方差 和频率方差 满足:
等号在 高斯函数 处取得 → 高斯窗是 STFT 的最优窗。
7.8.2 小波的"等 Q"特性
对小波 :
- 时间方差
- 频率方差
- Q 因子(频率中心 / 带宽)
意思是相对带宽一致。这正是人耳、人眼的特点(对数感知)!因此小波在生物学意义上"更自然"。
7.9 现代发展与深度学习
7.9.1 复小波 (Complex Wavelets)
经典 DWT 对平移敏感(平移 1 个像素,系数大变)。复小波(Kingsbury 的 DTCWT)对平移近似不变,旋转也更稳定。
7.9.2 Curvelet、Ridgelet、Shearlet
小波对点奇异最优,对曲线奇异(图像中更普遍)次优。 Curvelet(Candes 2004)专门为曲线设计 → 更好的边缘表示。
7.9.3 小波 + CNN
- Wavelet CNN:把 DWT 作为可微模块嵌入 CNN,替代池化
- WaveResNet 等:去噪、压缩、超分
- Multi-level Wavelet-CNN (MWCNN):去雾、去雨
关键发现:CNN 学到的第一层滤波器与 Gabor/小波高度相似 → 网络自然发现了多尺度分析。
7.9.4 神经小波 / 可学习小波
- 学习出的小波比固定 Haar/Daubechies 对特定任务更优
- 用于神经压缩(End-to-End Learned Compression)
7.10 本章要点与面试考点
✅ 必须掌握
- 傅里叶的空间无定位问题,小波的时频局部化优势
- 高斯/拉普拉斯金字塔的构造与完美重建
- Haar 小波的 定义
- 2D DWT 的四子带 (LL/HL/LH/HH) 及其含义
- MRA 框架:嵌套子空间、双尺度方程、细节子空间
- Mallat 快速算法()
- 软阈值去噪思想与 Donoho 通用阈值公式
- Daubechies vs 双正交的权衡(正交/对称不可兼得)
💡 高频面试题
Q1. 小波相比傅里叶的核心优势是什么?
答:时频同时局部化。傅里叶用无穷长正弦波作为基,只能告诉你"信号中有什么频率";小波用有限支集的函数,能同时给出"什么频率、出现在哪里"。这对图像处理至关重要——图像中的边缘、纹理是局部化事件。
Q2. 为什么 JPEG2000 选择双正交 9/7 小波?
答:图像压缩对线性相位(= 对称性)敏感(非对称导致边缘偏移)。而正交 + 对称 + 紧支三者不能同时满足(除了 Haar)。双正交牺牲正交性换取完美对称 + 完美重建 + 紧支,是图像压缩的最佳折中。
Q3. 二维 DWT 四子带分别代表什么?
答:
- LL:低通低通,即"缩略图"
- HL:水平高通,垂直低通 → 垂直边缘
- LH:水平低通,垂直高通 → 水平边缘
- HH:双高通 → 对角与角点
Q4. 小波去噪为什么用软阈值而非硬阈值?
答:
- 硬阈值:在阈值处不连续 → 去噪后图像可能有"小斑点"跳变
- 软阈值:连续,对所有通过的系数减去 → 更平滑的结果
- 理论上:软阈值在估计风险下接近最优(Donoho-Johnstone)
Q5. Donoho 通用阈值 的直觉?
答: 个独立标准正态噪声,其最大绝对值大致为 。乘 即估计"纯噪声区的最大幅度"。阈值设在此就能把绝大多数噪声系数归零,只保留显著信号。
Q6. DWT 能完美重建的条件?
答:滤波器组满足完美重建 (PR) 条件,即
且混叠项抵消
正交小波(如 Daubechies)中 ,自然满足。
Q7. 小波金字塔 vs 拉普拉斯金字塔的区别?
答:
- 拉普拉斯金字塔:冗余约 4/3 倍,但每层分辨率与输入相同(简单直观)
- 小波金字塔:严格无冗余(系数总数 = 原像素数),但一层产出 4 个子带
- 拉普拉斯适合教学;小波适合压缩/编码
Q8. 小波与深度学习的关系?
答:
- CNN 的前几层滤波器自发学到类似小波/Gabor 的多尺度模板
- 用 DWT 替代池化可保留全部信息(不丢细节)
- 神经压缩(Ballé 等)的编码器架构灵感部分来自小波
7.11 延伸阅读
- Mallat, A Wavelet Tour of Signal Processing(小波圣经)
- Daubechies, Ten Lectures on Wavelets
- Strang & Nguyen, Wavelets and Filter Banks
- Burt & Adelson, "The Laplacian Pyramid as a Compact Image Code", IEEE Trans. Comm. 1983
- Donoho, "De-noising by Soft-Thresholding", IEEE Trans. Inf. Theory 1995
- PyWavelets 文档:https://pywavelets.readthedocs.io/
下一章:前面花大量篇幅讨论"怎么处理图像",现在换个方向——如何把图像压缩,让它占用更少空间?这就是图像压缩,每天都在你手机和网络上发生的"看不见的艺术"。
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時





















