第三阶段:中级图像处理
1. 图像滤波
数学原理及意义
1.1 平滑滤波
平滑滤波是一种常见的图像处理技术,用于去除噪声并改善图像质量。常用方法包括均值滤波和高斯滤波。
均值滤波(Average Filtering)
- 选择一个 $( m \times n )$ 的矩形窗口,窗口内每个像素的权重均等为 $( \frac{1}{m \cdot n} )$。
- 对窗口内所有像素求平均值,得到目标像素值。
$$ g(x, y) = \frac{1}{m \cdot n} \sum_{i=-\frac{m}{2}}^{\frac{m}{2}} \sum_{j=-\frac{n}{2}}^{\frac{n}{2}} f(x+i, y+j) $$
其中:
- $( f(x, y) )$ 是输入图像。
- $( g(x, y) )$ 是输出图像。
- $( i, j )$ 是窗口内的相对坐标,表示从中心 $( (x, y) )$ 向四周的偏移量。
- $( f(x+i, y+j) )$ 是邻域内像素值。
- 权重 $( \frac{1}{m \cdot n} )$ 保证所有像素的贡献平均。
效果:
- 边缘模糊:由于取平均值,边缘信息也会被平滑。
- 噪声去除:高频噪声被弱化。
高斯滤波(Gaussian Filtering)
高斯滤波引入了加权平均思想,邻域中心像素权重更高,越远的像素权重越低,从而保留更多边缘信息。
数学模型:
高斯函数的表达式为:
$$ G(x, y) = \frac{1}{2\pi\sigma^2} \exp\left(-\frac{x^2 + y^2}{2\sigma^2}\right) $$
其中:
- $( \sigma )$ 是标准差,控制分布宽度。
- $( G(x, y) )$ 是权重,距离越远,值越小。
推导公式:
对中心点 ( (x, y) ),高斯滤波后的像素值为:
$$ g(x, y) = \sum_{i=-\frac{m}{2}}^{\frac{m}{2}} \sum_{j=-\frac{n}{2}}^{\frac{n}{2}} G(i, j) \cdot f(x+i, y+j) $$
推导解释:
- $( G(i, j) )$ 是根据高斯函数计算的权重。
- 窗口大小 $( m \times n )$ 足够大时,能覆盖绝大多数的高斯权重。
效果:
- 噪声去除:相比均值滤波效果更好。
- 边缘保留:因中心权重更高,边缘信息损失较小。
1.2 边缘检测
边缘检测的目标是找到图像灰度值变化最大的区域,即梯度的极值点。
Sobel 边缘检测
Sobel 算子是基于图像梯度的边缘检测方法,通过卷积核对图像局部进行微分近似,计算灰度变化率。
梯度定义:
- 图像的梯度表示为:
$$ \nabla f = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}\right) $$
- $( \frac{\partial f}{\partial x} )$ 是水平方向的变化率。
- $( \frac{\partial f}{\partial y} )$ 是垂直方向的变化率。
Sobel 核矩阵:
- Sobel 算子通过离散的卷积核近似梯度计算:
水平方向卷积核:
$$ K_x = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} $$
垂直方向卷积核:
$$ K_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix} $$
梯度模长计算:
使用卷积核计算的梯度分别为:
$$ G_x = f \ast K_x, \quad G_y = f \ast K_y $$
梯度模长为:
$$ G = \sqrt{G_x^2 + G_y^2} $$
效果:
- 梯度极大值对应边缘。
- 算法简洁,计算高效。
Canny 边缘检测
公式背景:
Canny 算法是一种多步骤的边缘检测方法,克服了 Sobel 算子的噪声敏感问题。
-
步骤解析:
- 高斯滤波:平滑噪声。
- 梯度计算:使用 Sobel 核计算梯度。
- 非极大值抑制(NMS):抑制非边缘点,保留梯度极值点。
- 双阈值法:设置高、低两个阈值连接边缘。
-
非极大值抑制数学推导:
- 计算梯度方向 $( \theta = \arctan\left(\frac{G_y}{G_x}\right) )$。
- 在梯度方向检查当前点是否是局部极大值:
- 如果是,则保留。
- 如果不是,则置为零。
1.3 形态学操作
形态学操作通过结构元素修改图像形状,常用于去噪和特征提取。
腐蚀(Erosion)
腐蚀操作使目标区域变小,定义为:
$$ A \ominus B = {z \mid (B)_z \subseteq A} $$
- $( A )$ 是图像中的前景区域。
- $( B )$ 是结构元素。
-
$( (B)_z )$ 是结构元素在 $( z )$ 处的平移。
即: - 当 $( B )$ 的所有像素都在 $( A )$ 的前景内时,点 $( z )$ 被保留。
- 否则,点 $( z )$ 被移除。
膨胀(Dilation)
膨胀操作使目标区域变大,定义为:
$$ A \oplus B = {z \mid (B)_z \cap A \neq \emptyset} $$
- $( z )$ 被保留的条件是结构元素 $( B )$ 和 $( A )$ 存在交集。
即:
- 只要 $( B )$ 的任意一个像素与 $( A )$ 的前景重叠,点 $( z )$ 就被保留。
意义:腐蚀去除小噪声点;膨胀填补目标区域的孔洞。
2. 特征检测
数学原理及意义
2.1 Harris 角点检测
Harris 算子基于图像灰度变化检测角点,其响应函数为:
$$ R = \det(M) - k \cdot (\text{trace}(M))^2 $$
其中:
- $( M )$ 是结构张量。
- $( k )$ 是经验参数。
数学意义:角点是图像中特征变化显著的区域,Harris 算子通过检测结构张量的特性来识别这些区域。
2.2 SIFT 特征提取
SIFT(尺度不变特征变换)提取图像中的关键点和描述子,其数学步骤包括:
- 构造高斯金字塔进行多尺度分析。
- 计算差分高斯(DoG)以检测特征点。
- 为特征点分配方向和位置。
- 提取特征描述子。
数学意义:SIFT 对图像缩放、旋转和光照变化具有不变性,适合特征匹配和目标识别。
2.3 特征匹配
特征匹配通过比较特征描述子实现跨图像匹配。最简单的方法是暴力匹配(Brute Force Matcher),计算欧氏距离:
$$ d(p, q) = \sqrt{\sum_{i=1}^n (p_i - q_i)^2} $$
数学意义:匹配过程寻找最相似的特征点,用于图像拼接、目标跟踪等任务。