第 3 章 图像处理 (Image Processing)
核心结论
-
点运算(§3.1):像素级映射——亮度 / 对比度 / 伽马校正 / 直方图均衡化;与邻域无关。
-
线性滤波(§3.2):卷积 / 互相关;高斯 / Sobel / 拉普拉斯核;边缘检测 / 模糊 / 锐化。
-
邻域运算(§3.3):中值 / 双边 / 非局部均值滤波;保边去噪;形态学(膨胀 / 腐蚀)。
-
傅里叶变换(§3.4):FFT 把空间域转到频率域;低通 / 高通 / 带通滤波;卷积定理。
-
金字塔与小波(§3.5):高斯金字塔 / 拉普拉斯金字塔;多尺度分析;图像融合 / 压缩。
-
几何变换(§3.6):平移 / 旋转 / 缩放 / 仿射 / 透视;正向 / 反向映射;插值(最近邻 / 双线性 / 双三次)。
|
本章主旨
本章是"像素到像素"的基础——把图像从一个表示转为另一个。理解后才能做去噪 / 增强 / 边缘检测 / 图像金字塔等预处理;这些是后续章节(特征 / 识别 / 重建)的输入。 |
一、核心概念
本章围绕 7 个核心概念展开:点运算 → 线性滤波 → 邻域运算 → FFT → 金字塔 → 几何变换。
| 概念 | 定义 + 重要性 | 实现提示 |
|---|---|---|
点运算 |
像素级映射:亮度 / 对比度 / 伽马校正 / 直方图均衡化。 |
§3.1;简单但强大;图像增强基础。 |
线性滤波 |
卷积 / 互相关;高斯 / Sobel / 拉普拉斯核。 |
§3.2;边缘检测 / 模糊 / 锐化。 |
邻域运算 |
中值 / 双边 / 非局部均值滤波;保边去噪。 |
§3.3;非线性滤波效果优于线性。 |
傅里叶变换 |
FFT 把空间域转到频率域;卷积定理。 |
§3.4;频率域滤波 = 卷积。 |
金字塔与小波 |
高斯 / 拉普拉斯金字塔;多尺度分析。 |
§3.5;图像融合 / 压缩 / 多尺度特征。 |
几何变换 |
平移 / 旋转 / 缩放 / 仿射 / 透视;插值方法。 |
§3.6;图像对齐 / 数据增强。 |
形态学 |
膨胀 / 腐蚀 / 开闭运算;从二值图提取结构。 |
§3.3;图像分割预处理。 |
二、详细笔记
2.1 点运算 (Point Operators)
What:像素级映射——每个像素独立变换。
Why:图像增强的基础;理解后才能做亮度 / 对比度调整。
How:
常见点运算(§3.1):
|
伽马校正的物理意义
|
When:图像增强;显示器校准;图像去雾(暗通道优先);HDR 处理。
Example:Photoshop Image → Adjustments → Curves;OpenCV cv2.LUT + 伽马表。
2.2 线性滤波 (Linear Filtering)
What:卷积 / 互相关;用核(kernel)在图像上滑动求加权和。
Why:CV 中最基础的操作;边缘检测 / 模糊 / 锐化都基于此。
How:
卷积公式(§3.2):
互相关 * 与卷积 ⊛ 类似但无翻转(深度学习 conv2d 用互相关)。
常用核:
-
高斯模糊:
K = (1/16) [[1, 2, 1], [2, 4, 2], [1, 2, 1]](去除噪声)。 -
Sobel 边缘:
K_x = [[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]](检测 x 方向梯度)。 -
拉普拉斯:
K = [[0, 1, 0], [1, -4, 1], [0, 1, 0]](检测二阶导数 / 边缘)。
|
卷积 vs 互相关
|
When:所有 CV 预处理;CNN 卷积层。
Example:cv2.GaussianBlur(img, (5, 5), 1.0);cv2.Sobel(img, cv2.CV_64F, 1, 0);PyTorch nn.Conv2d。
2.3 邻域运算 (Neighborhood Operators)
What:非线性滤波;保边去噪;形态学。
Why:线性滤波会模糊边缘;非线性滤波可保留边缘。
How:
常见非线性滤波(§3.3):
-
中值滤波:
I'(x,y) = median{ I(neighborhood) }(去除椒盐噪声)。 -
双边滤波:
I'(x,y) = \sum w_i I_i / \sum w_i,w_i = w_s \cdot w_r(空间 + 颜色)。 -
非局部均值:相似 patch 加权(去除纹理噪声)。
-
形态学:膨胀
I ⊕ B、腐蚀I ⊖ B、开I ∘ B = (I ⊖ B) ⊕ B、闭I • B = (I ⊕ B) ⊖ B。
|
保边去噪的工程权衡
|
When:图像去噪;图像分割预处理;医学影像。
Example:cv2.medianBlur(img, 5);cv2.bilateralFilter(img, 9, 75, 75);形态学用 cv2.morphologyEx。
2.4 傅里叶变换 (Fourier Transform)
What:FFT 把空间域图像转到频率域;卷积定理使频域滤波等价于空间域卷积。
Why:低通 / 高通 / 带通滤波在频域实现简单;理解后能选对滤波策略。
How:
离散傅里叶变换(DFT,§3.4):
-
低频 = 图像整体结构 / 亮度。
-
高频 = 细节 / 边缘 / 噪声。
卷积定理:
空间域卷积 = 频域乘积(反之亦然)。
|
FFT 的工程应用
|
When:频域滤波;图像压缩;纹理分析;相位相关。
Example:np.fft.fft2(img) 得到频谱;cv2.dft 实现类似;JPEG 用 DCT(8×8 块)。
2.5 图像金字塔 (Pyramids & Wavelets)
What:多尺度表示——高斯金字塔(向下采样)+ 拉普拉斯金字塔(残差)。
Why:CV 中很多算法(SIFT / 特征匹配 / 图像融合)需要多尺度。
How:
高斯金字塔(§3.5):
-
每层 = 高斯模糊 + 下采样(2×)。
-
从上到下:分辨率递减;细节递减。
-
拉普拉斯金字塔:每层 = 高斯金字塔当前层 - 上采样的高一层。
|
金字塔 vs 小波
|
When:SIFT / SURF 特征;图像融合(拉普拉斯金字塔 blend);多尺度检测;图像压缩。
Example:cv2.pyrDown / cv2.pyrUp;SIFT 内部用 DoG 金字塔;图像拼接用拉普拉斯金字塔 blend。
2.6 几何变换 (Geometric Transformations)
What:平移 / 旋转 / 缩放 / 仿射 / 透视;插值方法。
Why:图像对齐 / 数据增强 / 投影变换都需要。
How:
变换类型(§3.6):
-
平移:
x' = x + t_x, y' = y + t_y(2 个自由度)。 -
刚体(旋转 + 平移):3 个自由度。
-
缩放:
x' = s_x x, y' = s_y y(2 个自由度)。 -
仿射:旋转 + 缩放 + 剪切 + 平移(6 个自由度)。
-
透视:8 个自由度(投影变换)。
插值方法:
-
最近邻:最快但锯齿。
-
双线性:平滑;常用。
-
双三次:更平滑;高质量。
-
Lanczos:最佳;慢。
|
正向映射 vs 反向映射
|
When:图像对齐;数据增强;图像矫正(去畸变 / 投影变换)。
Example:cv2.warpAffine / cv2.warpPerspective;PyTorch F.grid_sample。
三、关键图表
非可视化条目
|
非可视化条目(表 / 算法)
|
核心公式对照表
|
核心公式对照表
|
四、思维导图
mindmap
root((第 3 章 图像处理))
点运算
亮度对比
伽马
直方图均衡
线性滤波
卷积
高斯Sobel
边缘模糊
邻域运算
中值
双边
形态学
傅里叶
FFT
卷积定理
频域滤波
金字塔
高斯拉普拉斯
多尺度
几何变换
平移旋转缩放
仿射透视
插值
五、重点与易错点
-
卷积 vs 互相关:深度学习"convolution"实际是互相关(不翻转核);数学定义需翻转。
-
伽马校正是非线性:不是简单的亮度调整;涉及显示器物理。
-
中值滤波保边但去细节:3×3 核保留边缘;5×5 核开始模糊;需权衡。
-
FFT 假设图像周期性:图像边界人为拼接导致"频谱泄漏";用窗函数减轻。
-
几何变换反向映射常用:正向映射有空洞;反向从目标查原图。
-
双三次插值质量高但慢:实时应用选双线性;离线 / 高质量选双三次。
-
CNN 卷积本质是线性滤波的扩展:多通道 / 多层 / 学习权重;理解后能设计更好 CNN。
-
跨章衔接:第 5 章深度学习用本章线性滤波作为基础;第 7 章特征用本章金字塔;第 8 章对齐用本章几何变换。
-