数学基础 -- 图像处理之Sobel卷积核推导过程
Sobel 卷积核推导过程
1. 理论背景:导数的离散近似
在连续情况下,函数 I ( x ) I(x) I(x) 的导数 d I d x \frac{dI}{dx} dxdI 定义为:
d I d x = lim Δ x → 0 I ( x + Δ x ) − I ( x ) Δ x \frac{dI}{dx} = \lim_{\Delta x \to 0} \frac{I(x + \Delta x) - I(x)}{\Delta x} dxdI=Δx→0limΔxI(x+Δx)−I(x)
在数字图像处理中,图像 I I I 是离散的,无法直接计算导数。通常使用差分来近似导数。最简单的近似方式有以下几种:
-
前向差分:
d I d x ≈ I ( x + 1 ) − I ( x ) \frac{dI}{dx} \approx I(x+1) - I(x) dxdI≈I(x+1)−I(x) -
后向差分:
d I d x ≈ I ( x ) − I ( x − 1 ) \frac{dI}{dx} \approx I(x) - I(x-1) dxdI≈I(x)−I(x−1) -
中心差分(更精确):
d I d x ≈ I ( x + 1 ) − I ( x − 1 ) 2 \frac{dI}{dx} \approx \frac{I(x+1) - I(x-1)}{2} dxdI≈2I(x+1)−I(x−1)
中心差分的形式被认为是更精确的,因为它考虑了左右两侧的变化。
2. Sobel 核的推导
Sobel 核不仅仅是简单的差分运算,它结合了差分和图像的平滑处理,能够更好地抗噪声。在 x 方向的 Sobel 核可以通过以下步骤推导:
(1) 中心差分核
首先,考虑在 x x x 方向上的梯度。使用中心差分的形式,可以得到一个简单的差分核:
中心差分核 = [ − 1 0 1 ] \text{中心差分核} = \begin{bmatrix} -1 & 0 & 1 \end{bmatrix} 中心差分核=[−101]
这个 1x3 核可以用于计算图像每一行的梯度。
(2) 平滑处理
直接使用上述的简单差分核对图像进行操作,可能会对噪声非常敏感。为了减弱噪声影响,Sobel 核通过对 y 方向进行加权平滑处理,结合了一个简单的平滑核:
平滑核 = [ 1 2 1 ] \text{平滑核} = \begin{bmatrix} 1 \\ 2 \\ 1 \end{bmatrix} 平滑核= 121
(3) 组合差分和平滑核
为了得到 x 方向的 Sobel 核,我们将差分核和平滑核组合起来:
Sobel 核 (x方向) = [ − 1 0 1 − 2 0 2 − 1 0 1 ] \text{Sobel 核 (x方向)} = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} Sobel 核 (x方向)= −1−2−1000121
这个核是通过将平滑核与差分核的每个元素相乘得到的。
- 第 1 行:平滑核的第 1 元素乘以差分核(-1, 0, 1)
- 第 2 行:平滑核的第 2 元素乘以差分核(-2, 0, 2)
- 第 3 行:平滑核的第 3 元素乘以差分核(-1, 0, 1)
3. 解释 Sobel 核的形式
S x = [ − 1 0 1 − 2 0 2 − 1 0 1 ] S_x = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} Sx= −1−2−1000121
- 差分:核的第一列为负,第三列为正,表示对 x x x 方向求导(即求横向变化率)。
- 平滑:核的中心行权重较大,外侧行权重较小,这相当于在垂直方向上进行平滑处理,减小噪声影响。
4. Y方向的 Sobel 核
通过相同的推导方法,可以得到 y 方向上的 Sobel 核,交换了 x 方向和 y 方向的操作:
S y = [ − 1 − 2 − 1 0 0 0 1 2 1 ] S_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix} Sy= −101−202−101
总结
Sobel 核是通过结合中心差分和加权平滑核得到的。它既能计算图像的梯度,也能在一定程度上抑制噪声,从而更适合在实际图像处理中使用。这种核的设计是通过在差分核上附加一个平滑操作得来的,最终形式如上述的 Sobel 核所示。