第 5 章 图像复原与重建
学习目标:从"主观美化"跨越到"客观逆推"——基于退化模型,把被噪声或模糊污染的图像还原为"真实样子"。 本章是逆问题 (Inverse Problem) 在图像中的典型战场,思想深刻、工程价值极高。
5.1 增强 vs 复原:本质差异
| 维度 | 增强(Ch 3、4) | 复原(本章) |
|---|---|---|
| 目的 | 看起来更好 | 逆向恢复原图 |
| 依据 | 主观、经验 | 退化模型 + 噪声模型 |
| 方法 | 启发式滤波、变换 | 反演、估计、优化 |
| 评价 | 视觉感受 | PSNR / SSIM vs 真值 |
| 类比 | 美图秀秀 | 法医鉴定 |
简记:增强问"怎么好看",复原问"真实是什么"。
5.2 退化模型
5.2.1 图像退化的物理过程
一张图像从拍摄到保存,可能受到:
- 光学模糊:焦外、衍射、景深
- 运动模糊:曝光期间相机/被摄物移动
- 大气扰动:湍流、雾、水
- 传感器噪声:热噪声、暗电流、放大噪声
- 压缩伪影:JPEG 块效应
- 传输噪声:椒盐、条纹
5.2.2 通用模型
定义 5.1(线性退化 + 加性噪声):
其中:
- :原图(未知,想要恢复)
- :点扩散函数 (Point Spread Function, PSF),表征退化系统
- :加性噪声
- :观测到的图像(已知)
频域形式:
其中 称为光学传递函数 (Optical Transfer Function, OTF)。
5.2.3 PSF 的意义
PSF = 系统对一个"点光源"的响应。
一个理想点源(δ 冲激)经过退化系统,会被"扩散"成一个小斑点 ,这就是 PSF。
整幅图像可看作无数点源的叠加(线性),因此:
PSF 的典型形态:
| 退化 | PSF 形状 | 频域特征 |
|---|---|---|
| 离焦 | 均匀圆盘(Disk) | 贝塞尔函数(过零) |
| 运动模糊 | 沿运动方向的线段 | sinc 衰减 |
| 大气湍流 | 高斯 | 高斯(无过零) |
| 衍射 | Airy 圆斑 | 圆锥 |
5.2.4 复原问题的核心困难
已知 (甚至不知道 ),要求 :
困难 1: 在某些频率接近零(比如运动模糊在运动方向的高频),除法会放大噪声到无穷。
困难 2:噪声 未知,只能估计其统计特性。
困难 3:病态 (Ill-posed) ——小扰动 可能导致巨大的 。
复原算法的所有技巧,都在对抗这三个困难。
5.3 噪声模型
5.3.1 常见噪声的 PDF
| 噪声 | 概率密度 | 来源 |
|---|---|---|
| 高斯 | 热噪声、电子噪声(最常见) | |
| 瑞利 | 距离图、超声 | |
| Gamma / Erlang | 激光 | |
| 指数 | Gamma 特例 | |
| 均匀 | 量化 | |
| 椒盐(脉冲) | 处尖峰 | 传感器失效 |
5.3.2 关键统计量
| 噪声 | 均值 | 方差 |
|---|---|---|
| 高斯 | ||
| 瑞利 | ||
| 指数 | ||
| 均匀 | ||
| 椒盐 | 依概率而定 | 依概率而定 |
5.3.3 从图像估计噪声参数
找一块均匀区域(比如天空、墙面),计算其像素值直方图:
- 直方图对称钟形 → 高斯,拟合
- 直方图偏态 → 瑞利 / Gamma
- 直方图两端有尖峰 → 椒盐
鲁棒估计:用中位绝对偏差 (MAD):
MAD 对异常值鲁棒(比标准差好)。
5.3.4 周期噪声
与上面"随机噪声"不同,周期噪声有确定的空间频率(如扫描仪机械振动、电源耦合),只能在频域识别(亮斑对),空域滤波几乎无效 → 陷波滤波(第 4 章)。
5.4 仅含加性噪声的复原(空域滤波)
当退化只是噪声( 为单位冲激)时,,只需去噪。
5.4.1 均值类滤波
算术均值
- 对高斯噪声:方差降低 倍 → MMSE 最优(线性空间下)
- 模糊图像细节
几何均值
- 相比算术均值,细节损失小
- 对接近 0 的像素敏感(乘积 → 0)
证明更优保细节:几何均值 ≤ 算术均值(AM-GM 不等式),在平坦区两者差不多;在边缘处,几何均值偏向小值 → 保留暗细节。
谐波均值
- 对盐噪声(亮脉冲 255)好 → 因为 1/255 很小,几乎不影响
- 对椒噪声(黑点 0)无能为力 → 0 使分母爆炸
逆谐波均值
- :退化为算术均值
- :退化为谐波均值
- :去椒(对 0 不敏感)
- :去盐(对 255 不敏感)
工程技巧:不知道噪声类型时,令 或 试试。
5.4.2 排序统计类(非线性)
中值滤波
已在 3.5.3 详述,对椒盐最优。
最大值、最小值滤波
- 最大值:去椒(暗脉冲)
- 最小值:去盐(亮脉冲)
中点滤波
对高斯 + 均匀噪声都较好。
Alpha-trimmed 均值
算法:窗口内像素排序,去掉最大的 和最小的 ,剩下 个像素求均值。
特性:
- :退化为算术均值(对付高斯)
- :退化为中值(对付椒盐)
- 中间值:兼顾高斯 + 椒盐混合噪声
经验:25%-trimmed 是比较通用的设置。
5.4.3 自适应局部降噪(经典技巧)
思想
在平坦区 → 强平滑 在边缘区 → 弱平滑(保边)
如何自动识别? 用局部方差 :
- 平坦区:(仅噪声方差)
- 边缘区:(信号方差 + 噪声)
公式
分析:
- 平坦区 → 修正项 → (强平滑)
- 边缘 → 修正项 → (保留)
这是 Wiener 滤波在空域的经验形式。
5.4.4 自适应中值滤波(强鲁棒)
动机
标准中值窗口太小(3×3)时:椒盐比例很高(>30%)则窗口内多数都是噪声,中值失效。 窗口太大:破坏细节。
解决:窗口自动扩大。
算法(两级)
设当前窗口为 ,中位 ,最大 ,最小 ,中心 。
Level A: A1 = z_med - z_min A2 = z_med - z_max 如果 A1 > 0 且 A2 < 0 (即 z_med 不是极值) → 进入 Level B 否则 → 扩大窗口 +2;若超过最大尺寸 → 输出 z_med
Level B: B1 = z_xy - z_min B2 = z_xy - z_max 如果 B1 > 0 且 B2 < 0 (中心不是极值) → 输出 z_xy(保留) 否则 → 输出 z_med(被替换)特点:
- 窗口自适应
- 即使 >50% 椒盐也能恢复
5.5 周期噪声的频域抑制
回顾第 4 章陷波滤波。步骤:
- FFT → 找到频谱亮斑对(人工或峰值检测)
- 构造陷波滤波器 (亮斑处 0,其余 1)
- IFFT → 恢复图像
5.5.1 最优陷波滤波(Gonzalez)
简单陷波会留下残影。最优陷波:
- 提取噪声分量:
- 从 减去 :
- 通过最小化邻域方差求得(使 局部最"干净"):
(上划线表示邻域平均)
5.6 含退化函数 的复原
这是本章的主角——去模糊 (Deblurring)。
5.6.1 逆滤波(最朴素方案)
由 :
致命问题:
- 当 小(高频位置很常见)时, 被放大到无穷
- 原图信号 被彻底淹没
直接逆滤波的结果:看起来像一团彩色雪花。改进 1:低通截断
只在 处做除法,其余置 0(或低通外等价):
改进 2:Tikhonov 正则化
越大越稳定(偏向平滑),越小越贴近逆滤波。实际上就是维纳滤波的简化。
5.6.2 维纳滤波(Wiener,MMSE 最优)
目标:最小化均方误差 。
推导(简要): 假设 。对 求导使 MSE 最小,得:
公式:
- :噪声功率谱
- :原信号功率谱
- :噪信比(工程上常设常数)
两种极端:
- (无噪声): → 退化为逆滤波
- (某频率被完全抑制): → 不放大噪声
实现
def wiener(g, H, K=0.01): G = np.fft.fft2(g) H_mag2 = np.abs(H)**2 W = np.conj(H) / (H_mag2 + K) return np.real(np.fft.ifft2(G * W))的选择
- 真实 ≈ noise_var / signal_var(很难估计)
- 工程经验:从 0.001 开始试,逐步增大,直到视觉/PSNR 最佳
- 盲估计:L-curve 法、交叉验证
5.6.3 约束最小二乘(CLS)
维纳滤波需要知道两个功率谱。若无法估计,改用 CLS。
目标:最小化"平滑度",约束残差等于噪声能量:
常取拉普拉斯算子(梯度平方度量平滑度)。
拉格朗日法求得:
其中 是拉普拉斯的 FT, 是拉格朗日系数。
与 Wiener 对比:
- Wiener:分母加 (依赖功率谱)
- CLS:分母加 (只需一个系数,工程更实用)
迭代调整 :
- 初始
- 算
- 计算残差
- 如果 太小 → 增大 ;太大 → 减小
- 直到
5.6.4 Lucy-Richardson 迭代(极大似然)
假设噪声是泊松分布(光子计数场景),用 EM 算法导出迭代:
特点:
- 保证非负
- 收敛慢,但质量高
- 经典应用:天文望远镜(修复哈勃太空望远镜早期图像)、荧光显微镜
from skimage.restoration import richardson_lucydeconv = richardson_lucy(blurry, psf, num_iter=30)5.6.5 盲反卷积(Blind Deconvolution)
现实中 往往未知。
盲反卷积同时估计 和 。这是超病态问题,需要额外先验:
- 自然图像的梯度分布:稀疏(重尾)
- PSF 的形状先验:非负、有限支集、归一化
经典方法:
- Fergus et al. 2006(贝叶斯 + 变分推断)
- Krishnan 2009(归一化稀疏正则)
- Levin et al. 2011(MAP 问题的理论分析)
深度学习完全碾压传统方法:
- DeblurGAN、MPRNet、NAFNet 等
- 端到端学习 ,无需显式
5.7 运动模糊的 PSF 建模(经典例题)
假设曝光时间 内相机在水平方向匀速移动距离 :
空域 PSF:
即长度 的水平线段。
频域 OTF:
即 sinc 函数!
过零点: → 这些频率完全丢失,逆滤波在这些点除零。
推广到任意方向 、速度 :
估计方法:
- 已知相机运动轨迹(IMU 数据) → 直接构造
- 未知 → 在频谱中找"暗条纹"的方向和周期 → 反推
5.8 几何畸变校正
光学相机在广角或长焦下会产生畸变:
- 径向畸变:桶形(广角)、枕形(长焦)
- 切向畸变:镜头装配误差
5.8.1 畸变模型(Brown-Conrady)
设归一化坐标 ,畸变后 :
其中 。
- :径向
- :切向
5.8.2 相机标定(张正友法简述)
用棋盘格拍多张不同角度照片:
- 自动检测角点 → 每角点给出 (像素坐标, 世界坐标) 对
- 估计每张图的单应
- 由多个 约束解内参 和畸变系数
- 非线性细化
ret, K, dist, rvecs, tvecs = cv2.calibrateCamera(obj_pts, img_pts, gray.shape[::-1], None, None)undistorted = cv2.undistort(img, K, dist)5.8.3 几何校正的一般流程
畸变图 → 逆向映射 → 无畸变坐标 → 插值取值 → 校正图关键:逆向映射(每个目标像素反查源)。
5.9 图像重建(投影重建 / CT)
不同于复原("从退化图像恢复"),重建 (Reconstruction) 是"从投影数据恢复图像",如:
- CT 扫描
- 核磁共振 MRI
- 地球物理成像
5.9.1 Radon 变换
定义 5.2:对给定角度 和距离 ,沿直线 的线积分:
物理意义:X 光穿过物体,射线强度衰减 。每个投影就是一个 下的"影子"。
正弦图 (Sinogram): 作为 的函数图——每个物体点对应正弦图中一条正弦曲线。
5.9.2 中心切片定理(Fourier Slice Theorem)
定理 5.1(核心): 关于 的 1D 傅里叶变换,等于原函数 的 2D 傅里叶变换 沿过原点、方向 的一维切片。
证明思路:
几何直觉:
2D Fourier plane: Sinogram: ▲ v R(ρ, θ) │ 切片 ─→ = 1D FFT of ─→ projection at θ │ / │ / │ / θ────┼────→ u推论:只要我们收集足够多角度的投影,就能"填满"整个 2D 频谱,再 IFT 即得原图。
5.9.3 直接反投影(失败方案)
对每个 ,把 的值均匀涂回对应直线上:
结果:图像模糊,有"星芒伪影"(因为重复叠加低频)。不可用。
5.9.4 滤波反投影(FBP)
核心思想:反投影前,先对每个投影做1D 滤波(Ram-Lak 斜坡滤波)。
算法:
1. 对每个角度 θ: 1a. 对 R(·, θ) 做 1D FFT → R̂(ω, θ) 1b. 乘以 ramp 滤波器 |ω| (+ 可选窗函数如 Hamming) 1c. IFFT → R̃(ρ, θ) (滤波后的投影)2. 反投影: f(x, y) = ∫ R̃(x cosθ + y sinθ, θ) dθ为什么乘 ? 将直接反投影对应的低通响应 校正为平坦响应,防止低频过度叠加。
FBP 是 CT 医疗设备的标准算法(40 年主力)。
from skimage.transform import radon, iradonsinogram = radon(img, theta=np.arange(180))recon = iradon(sinogram, theta=np.arange(180), filter_name='ramp')5.9.5 代数重建(ART)与迭代重建
将投影过程写成矩阵方程:
是"投影矩阵",每行对应一条射线。
ART 迭代(Kaczmarz):
对每条射线 逐一更新,遍历所有射线为一轮。
SIRT(Simultaneous):一次用所有射线,更稳定但慢。
优势:
- 不需要 密集采样
- 可加先验(非负、平滑、稀疏)
- 低剂量 CT、稀疏视图重建的主力
5.9.6 现代方向:深度学习重建
- FBPConvNet:FBP + U-Net 去伪影
- LEARN / MoDL:把迭代算法展开为网络
- NeRF-based CT:神经辐射场重建 3D 体积
- 效果显著优于 FBP,尤其在低剂量下
5.10 复原算法选型指南
| 退化类型 | 推荐方法 |
|---|---|
| 轻度高斯噪声 | 高斯/双边/NLM 滤波 |
| 强高斯噪声 | BM3D、NLM |
| 椒盐噪声 | 自适应中值 |
| 混合噪声 | Alpha-trimmed 或先中值再 NLM |
| 周期噪声 | 陷波滤波 |
| 已知 PSF 模糊 | Wiener / CLS / Lucy-Richardson |
| 未知 PSF 模糊 | 盲反卷积 / DeblurGAN |
| 极端低光 / 高 ISO | 深度学习方法(DnCNN、Restormer) |
| CT 重建 | FBP + 迭代细化 |
5.11 本章要点与面试考点
✅ 必须掌握
- 退化模型 及频域形式
- 常见噪声 PDF 与识别方法
- 逆滤波为何失败,如何改进
- Wiener 滤波公式推导与 的意义
- 运动模糊的 PSF 空域与频域形式
- 中心切片定理
- FBP 流程(尤其为何要 ramp 滤波)
💡 高频面试题
Q1. 逆滤波为何不可用?如何改进?
答:退化模型 。逆滤波 。在 接近 0 的频率, 被无限放大。 改进:
- 低通截断(只在 处做除法)
- 加正则项(Tikhonov)
- 维纳滤波:分母加 防爆
Q2. 推导维纳滤波公式。
答:设 ,目标 。对 求导置零,得
Q3. 如何估计运动模糊的 PSF?
答:
- 先验法:若已知曝光时长与相机运动(IMU),直接画 PSF
- 频域法:观察 频谱中的黑条纹(sinc 零点),沿运动方向均匀分布。 从零点间距 反推运动长度 ,条纹方向给出运动角度。
Q4. 中心切片定理是什么?
答:投影数据 关于 做 1D FFT 得到的结果,等于原图 的 2D FFT 沿方向 过原点的切片。意义:多角度投影可"填满"2D 频谱。
Q5. FBP 里为什么要乘 ramp 滤波器?
答:直接反投影相当于在频域每个频率累加 次(角度积分),低频被过度强调。乘 校正后响应平坦。
Q6. 自适应中值滤波的优势?
答:椒盐噪声比例 > 30% 时,标准中值也会被污染(窗口内多数噪声)。自适应中值先扩大窗口直到中值不是极值(即不受椒盐干扰),再判断中心像素是否要替换。对极端椒盐强鲁棒。
Q7. 椒盐 + 高斯混合噪声用什么?
答:先去椒盐再去高斯。椒盐是脉冲,若先做均值/高斯会将脉冲扩散成圆斑;先用自适应中值去椒盐(信号几乎不受影响),再用 NLM/BM3D 去高斯。也可以直接 Alpha-trimmed。
Q8. Lucy-Richardson 和 Wiener 的区别?
答:
- Wiener 在频域线性最优(MMSE),假设高斯噪声
- Lucy-Richardson 迭代 ML 估计,假设泊松噪声(光子计数),保证非负;在天文、显微更适合
5.12 延伸阅读
- Gonzalez, Digital Image Processing (4th), Ch. 5
- Richardson, "Bayesian-Based Iterative Method of Image Restoration", JOSA 1972
- Fergus et al., "Removing Camera Shake from a Single Photograph", SIGGRAPH 2006
- Dabov, "BM3D Image Denoising", IEEE T. Image Processing 2007
- Kak & Slaney, Principles of Computerized Tomographic Imaging(CT 经典)
下一章:我们把视野从灰度扩展到彩色——颜色不止是三通道,它承载着物理、感知、生理的多重秘密。
如果這篇文章對你有幫助,歡迎分享給更多人!
部分資訊可能已經過時





















