mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13
4267 字
13 分鐘
小波变换与多分辨率分析
2026-04-27

第 7 章 小波变换与多分辨率分析#

学习目标:理解”同时获得频率和位置”这一革命性思想,掌握图像金字塔、Haar/Daubechies 小波、2D-DWT 及其在去噪、压缩、融合中的应用。 本章是 20 世纪 80-90 年代信号处理的最大理论突破之一,哈佛数学系与贝尔实验室工程师联手的里程碑。


7.1 为什么需要小波?—— 傅里叶的局限#

7.1.1 傅里叶的”空间无定位”问题#

回忆第 4 章:傅里叶变换把信号分解为无穷长的正弦波。 [ F(u) = \int_{-\infty}^{+\infty} f(x) e^{-j2\pi u x} dx ]

这意味着:频率为 (u) 的分量在整个空间上都存在。 即使我们知道某信号含有频率 (u_0),无法从频谱知道它出现在哪个位置

类比:一首音乐先是低音后是高音,但傅里叶只能告诉你”这首歌里有低音和高音”,不知道先后。

信号: ── 低频段 ── 高频段 ── 低频段 ──
(x=0-10) (10-20) (20-30)
FT: 看到的是"低 + 高",没有时序信息

7.1.2 短时傅里叶变换(STFT):第一次尝试#

思路:把信号切成小块,每块做 FT。 [ \text{STFT}(u, \tau) = \int f(x) g(x - \tau) e^{-j2\pi ux} dx ] 其中 (g) 是窗函数(高斯、汉宁等)。

权衡困难(海森堡不确定原理):

  • 窗口 → 时间定位好,但频率分辨率差
  • 窗口 → 频率分辨率好,但时间定位差

STFT 用固定窗宽,无法同时满足低频(需要长观察)和高频(需要细定位)的需求。

7.1.3 小波的核心思想:多尺度#

小波让”窗口大小”与频率自适应

  • 分析低频:窗口宽(长时间观察)
  • 分析高频:窗口窄(短时间观察)
STFT 的时-频窗格: 小波的时-频窗格:
频率 ▲ 频率 ▲
高 │□ □ □ □ □ │■ ■ ■ ■ ■ ← 高频:窄窗
中 │□ □ □ □ □ │█ █ █ ← 中频
低 │□ □ □ □ □ │██ ← 低频:宽窗
└──────→ 时间 └──────→ 时间

这就是小波变换。核心:固定”时间×频率” 面积(不确定原理允许的最小),但形状自适应。


7.2 图像金字塔:直观的多分辨率#

7.2.1 金字塔的概念#

对一张图,反复下采样得到一系列尺寸递减的版本:

L0 (512×512) 原图
L1 (256×256) /2
L2 (128×128) /4
L3 (64×64) /8
...

每层代表同一内容的不同尺度。远看轮廓 = 上层金字塔;近察细节 = 下层。

7.2.2 高斯金字塔 (Gaussian Pyramid)#

构造

L_{k+1} = Downsample(Gaussian_Blur(L_k))
  1. 对 (L_k) 用 5×5 高斯核模糊(抗混叠)
  2. 每行每列取一半 → 尺寸减半
G = img.copy()
pyr = [G]
for _ in range(4):
G = cv2.pyrDown(G) # 内部先高斯再下采样
pyr.append(G)

性质

  • 每层尺寸 1/4,总存储 (1 + 1/4 + 1/16 + \ldots = 4/3) 倍原图
  • 每层对应一个带通频率

7.2.3 拉普拉斯金字塔 (Laplacian Pyramid)#

Burt & Adelson 1983 提出。

核心:每层存储高斯金字塔相邻两层之

[ L_k = G_k - \text{Upsample}(G_{k+1}) ]

原图 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^B
2. 掩膜 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 / 低通): [ \phi(x) = \begin{cases} 1 & 0 \le x < 1 \ 0 & \text{否则} \end{cases} ]

小波函数(wavelet / 高通): [ \psi(x) = \begin{cases} 1 & 0 \le x < 1/2 \ -1 & 1/2 \le x < 1 \ 0 & \text{否则} \end{cases} ]

φ: ┌────┐ ψ: ┌──┐
│ │ │ │
│ │ │ └──┐
───────┴────┴ ─ ──┴──
0 1 0 .5 1

正交分解#

对长度 2 的信号 ((x_1, x_2)),一级 Haar 变换: [ \begin{bmatrix} a \ d \end{bmatrix} = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix} \begin{bmatrix} x_1 \ x_2 \end{bmatrix} ]

  • (a = (x_1 + x_2)/\sqrt{2}):平均 / 低频 / 近似
  • (d = (x_1 - x_2)/\sqrt{2}):差分 / 高频 / 细节

信息量不变(2 个输入 → 2 个输出),且正交(逆变换是转置)。

多级分解#

对长度 (N) 的信号:

原信号
│ Haar
a1 (N/2), d1 (N/2)
│ 对 a1 再做 Haar
a2 (N/4), d2 (N/4), d1 (N/2)
...

最终:一个最粗的 (a_K) + 多级细节 (d_K, d_{K-1}, \ldots, d_1)。 总系数数 = 原信号长度 (N)(无冗余)。

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 的物理意义#

  • (\phi) 是平均算子(低通)
  • (\psi) 是差分算子(高通)
  • 小波 = 对应于不同尺度 ((2^j)) 和位置 ((2^j k)) 的平移缩放

Haar 的基函数: [ \psi_{j, k}(x) = 2^{j/2} \psi(2^j x - k) ]

所有这样的 (\psi_{j, k}) 构成 (L^2(\mathbb{R})) 的正交基!(Haar 1909 的经典结果)


7.4 多分辨率分析 (MRA) 框架#

Mallat & Meyer 1987-1989 给出”小波理论”的严格数学结构。

7.4.1 嵌套子空间#

定义一系列子空间 ({V_j}_{j \in \mathbb{Z}}),满足:

  1. 嵌套:(\cdots \subset V_{-1} \subset V_0 \subset V_1 \subset \cdots)
  2. 稠密:(\overline{\bigcup_j V_j} = L^2(\mathbb{R}))
  3. 交空:(\bigcap_j V_j = {0})
  4. 尺度关系:(f(x) \in V_j \Leftrightarrow f(2x) \in V_{j+1})
  5. 平移不变性:(f(x) \in V_0 \Leftrightarrow f(x - k) \in V_0)
  6. 正交基存在:存在 (\phi \in V_0) 使 ({\phi(x - k)}_{k \in \mathbb{Z}}) 是 (V_0) 的正交基

(\phi) 称尺度函数

7.4.2 细节子空间 (W_j)#

由嵌套关系 (V_j \subset V_{j+1}),定义正交补: [ V_{j+1} = V_j \oplus W_j ]

(W_j) 称为细节子空间,其基: [ \psi_{j, k}(x) = 2^{j/2} \psi(2^j x - k) ]

(\psi) 称小波函数

7.4.3 双尺度方程(Two-Scale Equation)#

由 (\phi \in V_0 \subset V_1),可写: [ \phi(x) = \sum_k h_\phi(k) \sqrt{2} \phi(2x - k) ]

(h_\phi) 叫低通滤波器系数。类似地: [ \psi(x) = \sum_k h_\psi(k) \sqrt{2} \phi(2x - k) ]

(h_\psi) 叫高通滤波器系数

正交性约束#

要求双滤波器组满足: [ \sum_k h_\phi(k) h_\phi(k + 2m) = \delta(m) ] [ h_\psi(k) = (-1)^k h_\phi(1 - k) ]

这就是 QMF(正交镜像滤波器) 条件。

7.4.4 MRA 的意义#

任意函数 (f \in L^2(\mathbb{R})) 可分解为: [ f = f_{J} + \sum_{j = -\infty}^{J - 1} d_j ]

  • (f_J \in V_J):尺度 (J) 下的近似
  • (d_j \in W_j):各尺度细节

展开为系数: [ f(x) = \sum_k c_{J, k} \phi_{J, k}(x) + \sum_{j < J} \sum_k d_{j, k} \psi_{j, k}(x) ]

这就是离散小波变换(DWT)


7.5 离散小波变换(DWT)算法#

7.5.1 Mallat 快速算法#

思想:递归滤波 + 下采样。

信号 x
├── h_φ (低通) ──> 下采样 2 ──> a1
└── h_ψ (高通) ──> 下采样 2 ──> d1

对 a1 再次分解:

a1
├── h_φ ──> ↓2 ──> a2
└── h_ψ ──> ↓2 ──> d2

复杂度:(O(N))(相当于 FFT 的 (O(N \log N)) 更快!)

7.5.2 反变换(重建)#

a_j, d_j
├── 上采样 2 ──> g_φ (低通) ──┐
│ ├── 相加 ──> a_{j-1}
└── 上采样 2 ──> g_ψ (高通) ──┘

完美重建条件: [ h_\phi(n) * g_\phi(-n) + h_\psi(n) * g_\psi(-n) = 2 \delta(n) ]

正交小波下 (g = h)(自对偶)。

7.5.3 2D DWT 实现#

图像
│ 逐行 1D DWT
┌────┬────┐
│ L │ H │ ← 每行分成低/高频
│ │ │
└────┴────┘
│ 逐列 1D DWT
┌────┬────┐
│ LL │ HL │
├────┼────┤
│ LH │ HH │
└────┴────┘

代码(pywt):

import pywt
coeffs = 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)21不连续
db242几乎连续
db484光滑但不对称
db102010很光滑,频域好

消失矩 (N): [ \int x^k \psi(x) dx = 0, \quad k = 0, 1, \ldots, N-1 ]

消失矩高 → 对多项式信号响应为 0 → 图像稀疏表示好。

缺点

  • 非对称 → 重建有相位失真
  • 没有解析表达式(只能通过迭代构造)

7.6.3 Symlets (sym)#

Daubechies 的”近似对称”版本。

7.6.4 Coiflets (coif)#

同时要求 (\phi) 和 (\psi) 都有消失矩(Daubechies 只要求 (\psi))。更对称但支持更大。

7.6.5 Biorthogonal (bior, rbio)#

放弃正交性换取完美对称 + 完美重建(同时不可能)。

  • 分析小波 (\tilde{\phi}, \tilde{\psi})
  • 合成小波 (\phi, \psi)
  • 两者不同但满足双正交条件: [ \langle \tilde{\phi}(x), \phi(x - k) \rangle = \delta(k) ]

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 附近的高斯)
  • 把小幅度系数”削掉”,保留大的 → 去噪

阈值函数

硬阈值: [ T_{\text{hard}}(d) = \begin{cases} d & |d| > \lambda \ 0 & |d| \le \lambda \end{cases} ]

软阈值(更平滑): [ T_{\text{soft}}(d) = \text{sign}(d) \max(|d| - \lambda, 0) ]

硬阈值: 软阈值:
│ / │ /
│ / │ /
│ / │ /
──┼────── ──┼──/───
│\ │ /
│ \ │/

最优阈值:Donoho 给出通用阈值 [ \lambda = \sigma \sqrt{2 \ln N} ] (N) 是信号长度,(\sigma) 是噪声标准差(用最粗细节子带的 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:对任何函数 (f \in L^2),其时间方差 (\sigma_t^2) 和频率方差 (\sigma_u^2) 满足: [ \sigma_t \sigma_u \ge \frac{1}{4\pi} ]

等号在 高斯函数 处取得 → 高斯窗是 STFT 的最优窗。

7.8.2 小波的”等 Q”特性#

对小波 (\psi_{j, k}):

  • 时间方差 (\sigma_t \propto 2^{-j})
  • 频率方差 (\sigma_u \propto 2^j)
  • Q 因子(频率中心 / 带宽) (= \text{const})

意思是相对带宽一致。这正是人耳、人眼的特点(对数感知)!因此小波在生物学意义上”更自然”。


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 小波的 (\phi, \psi) 定义
  • 2D DWT 的四子带 (LL/HL/LH/HH) 及其含义
  • MRA 框架:嵌套子空间、双尺度方程、细节子空间
  • Mallat 快速算法((O(N)))
  • 软阈值去噪思想与 Donoho 通用阈值公式
  • Daubechies vs 双正交的权衡(正交/对称不可兼得)

💡 高频面试题#

Q1. 小波相比傅里叶的核心优势是什么?

答:时频同时局部化。傅里叶用无穷长正弦波作为基,只能告诉你”信号中有什么频率”;小波用有限支集的函数,能同时给出”什么频率、出现在哪里”。这对图像处理至关重要——图像中的边缘、纹理是局部化事件。

Q2. 为什么 JPEG2000 选择双正交 9/7 小波?

答:图像压缩对线性相位(= 对称性)敏感(非对称导致边缘偏移)。而正交 + 对称 + 紧支三者不能同时满足(除了 Haar)。双正交牺牲正交性换取完美对称 + 完美重建 + 紧支,是图像压缩的最佳折中。

Q3. 二维 DWT 四子带分别代表什么?

答:

  • LL:低通低通,即”缩略图”
  • HL:水平高通,垂直低通 → 垂直边缘
  • LH:水平低通,垂直高通 → 水平边缘
  • HH:双高通 → 对角与角点

Q4. 小波去噪为什么用软阈值而非硬阈值?

答:

  • 硬阈值:在阈值处不连续 → 去噪后图像可能有”小斑点”跳变
  • 软阈值:连续,对所有通过的系数减去 (\lambda) → 更平滑的结果
  • 理论上:软阈值在估计风险下接近最优(Donoho-Johnstone)

Q5. Donoho 通用阈值 (\lambda = \sigma \sqrt{2 \ln N}) 的直觉?

答:(N) 个独立标准正态噪声,其最大绝对值大致为 (\sqrt{2 \ln N})。乘 (\sigma) 即估计”纯噪声区的最大幅度”。阈值设在此就能把绝大多数噪声系数归零,只保留显著信号。

Q6. DWT 能完美重建的条件?

答:滤波器组满足完美重建 (PR) 条件,即 [H_0(z) G_0(z) + H_1(z) G_1(z) = 2] 且混叠项抵消 [H_0(-z) G_0(z) + H_1(-z) G_1(z) = 0] 正交小波(如 Daubechies)中 (G = H),自然满足。

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/

下一章:前面花大量篇幅讨论”怎么处理图像”,现在换个方向——如何把图像压缩,让它占用更少空间?这就是图像压缩,每天都在你手机和网络上发生的”看不见的艺术”。

分享

如果這篇文章對你有幫助,歡迎分享給更多人!

小波变换与多分辨率分析
https://lemusakuya.com/posts/study-notes/digital-image-processing/07_小波变换与多分辨率分析/
作者
レム・咲く夜
發布於
2026-04-27
許可協議
CC BY-NC-SA 4.0

部分資訊可能已經過時

目錄