opencv基础41-图像梯度-sobel算子详解cv2.Sobel()(边缘检测基础)

本文介绍了Sobel理论基础,包括如何计算水平和垂直方向的偏导数,以及在OpenCV中如何使用cv2.Sobel函数进行边缘检测。重点讲解了ddepth参数的选择与处理,以确保正确显示梯度值。给出了使用Sobel算子进行图像处理的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像梯度是用于描述图像变化率的概念。在图像处理中,梯度指的是图像中每个像素的灰度值变化速率或方向。它常用于边缘检测和图像特征提取。

一维图像的梯度表示为函数 f(x) 的导数,而在二维图像中,梯度是一个向量,包含两个分量:水平方向和垂直方向的灰度变化率。这两个分量的大小和方向可以用来确定图像中的边缘和纹理信息。

在图像处理中,常用的算子如Sobel、Prewitt和Scharr等可以用于计算图像的梯度。梯度计算对于计算机视觉任务和图像处理中的特征提取非常有用。

图像梯度计算需要求导数,但是图像梯度一般通过计算像素值的差来得到梯度的近似值(近似导数值)。

例如,图 9-1 中的左右两幅图分别描述了图像的水平边界和垂直边界。

针对左图,通过垂直方向的线条 A 和线条 B 的位置,可以计算图像水平方向的边界:

  • 对于线条 A 和线条 B,其右侧像素值与左侧像素值的差值不为零,因此是边界。

  • 对于其余列,其右侧像素值与左侧像素值的差值均为零,因此不是边界。

针对右图,通过水平方向的线条 A 和线条 B 的位置,可以计算图像垂直方向的边界:

  • 对于线条 A 和线条 B,其下侧像素值与上侧像素值的差值不为零,因此是边界。
  • 对于其余行,其下侧像素值与上侧像素值的差值均为零,因此不是边界。

在这里插入图片描述

将上述运算关系进一步优化,可以得到更复杂的边缘信息。

Sobel 理论基础

Sobel 算子是一种离散的微分算子,该算子结合了高斯平滑和微分求导运算。该算子利用局部差分寻找边缘,计算所得的是一个梯度的近似值。

Sobel 算子如图 9-2 所示。

在这里插入图片描述
需要说明的是,滤波器通常是指由一幅图像根据像素点(x, y)临近的区域计算得到另外一幅新图像的算法。因此,滤波器是由邻域及预定义的操作构成的。滤波器规定了滤波时所采用的形状以及该区域内像素值的组成规律。滤波器也被称为“掩模”、“核”、“模板”、“窗口”、“算子”等。一般信号领域将其称为“滤波器”,数学领域将其称为“核”。

文中出现的滤波器多数为“线性滤波器”,也就是说,滤波的目标像素点的值等于原始像素值及其周围像素值的加权和。这种基于线性核的滤波,就是我们所熟悉的卷积。在文中,为了方便说明,直接使用“算子”来表示各种算子所使用的滤波器。例如,文中所说的“Sobel 算子”通常是指 Sobel滤波器。

假定有原始图像 src,下面对 Sobel 算子的计算进行讨论。

1. 计算水平方向偏导数的近似值

将 Sobel 算子与原始图像 src 进行卷积计算,可以计算水平方向上的像素值变化情况。
例如,当 Sobel 算子的大小为 3×3 时,水平方向偏导数 Gx的计算方式为:

在这里插入图片描述
上式中,src 是原始图像,假设其中有 9 个像素点,如图 9-3 所示。

在这里插入图片描述
如果要计算像素点 P5 的水平方向偏导数 P5x,则需要利用 Sobel 算子及 P5 邻域点,所使用的公式为:

P5x = (P3-P1) + 2·(P6-P4) + (P9-P7)

即用像素点 P5 右侧像素点的像素值减去其左侧像素点的像素值。其中,中间像素点(P4 和 P6)距离像素点 P5 较近,其像素值差值的权重为 2;其余差值的权重为 1。

然后将这三个差值相加得到一个新的值,并将这个新的值赋给P5,即得到P5的像素值。

2. 计算垂直方向偏导数的近似值

将 Sobel 算子与原始图像 src 进行卷积计算,可以计算垂直方向上的变化情况。例如,当Sobel 算子的大小为 3×3 时,垂直方向偏导数 Gy的计算方式为:

在这里插入图片描述

上式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小海聊智造

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值