当前位置: 首页 > article >正文

数学基础 -- 图像处理之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=Δx0limΔ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) dxdII(x+1)I(x)

  • 后向差分
    d I d x ≈ I ( x ) − I ( x − 1 ) \frac{dI}{dx} \approx I(x) - I(x-1) dxdII(x)I(x1)

  • 中心差分(更精确)
    d I d x ≈ I ( x + 1 ) − I ( x − 1 ) 2 \frac{dI}{dx} \approx \frac{I(x+1) - I(x-1)}{2} dxdI2I(x+1)I(x1)

中心差分的形式被认为是更精确的,因为它考虑了左右两侧的变化。

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方向)= 121000121

这个核是通过将平滑核与差分核的每个元素相乘得到的。

  • 第 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= 121000121

  • 差分:核的第一列为负,第三列为正,表示对 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= 101202101

总结

Sobel 核是通过结合中心差分和加权平滑核得到的。它既能计算图像的梯度,也能在一定程度上抑制噪声,从而更适合在实际图像处理中使用。这种核的设计是通过在差分核上附加一个平滑操作得来的,最终形式如上述的 Sobel 核所示。


http://www.kler.cn/a/288260.html

相关文章:

  • H.265流媒体播放器EasyPlayer.js H.264/H.265播放器chrome无法访问更私有的地址是什么原因
  • C#从入门到放弃
  • 基于Java Springboot快递物流管理系统
  • Go八股(Ⅴ)map
  • Docker 的安装与使用
  • 计算机网络 (1)互联网的组成
  • C++STL~~list
  • Day21—爬虫性能优化技巧
  • 自动化仓储系统:知识汇总
  • 将语义分割的标签转换为实例分割(yolo)的标签
  • vim和nano的基础教程(很基础的那种)
  • wordcloud兼figma的词云图片python生成
  • 情感共鸣:数业智能心大陆重塑AI心理交互新纪元
  • Github 2024-09-03 Python开源项目日报 Top10
  • cpu架构:x86和arm
  • 猎板PCB正片与负片工艺:深入解析PCB制造中的光刻技术及其应用
  • 【深度学习 transformer】transformer 训练一个文本分类任务,超简单了
  • 【初出江湖】分布式之什么是分布式存储?
  • 函数式编程(纯函数函数柯里化代码组合)
  • WPF性能优化之UI虚拟化
  • 贪心算法---监控二叉树
  • 综合评价 | 基于层次-熵权-博弈组合法的综合评价模型(Matlab)
  • JavaScript学习文档(12):什么是正则表达式、语法、元字符、修饰符
  • Flask中多app应用怎么完成
  • Ps:颜色模型、色彩空间及配置文件
  • 个人旅游网(3)——功能详解——旅游路线功能