特征检测,第 1 部分:图像导数、梯度和 Sobel 算子

将微积分基础知识应用到计算机视觉中进行边缘检测后特征检测,第 1 部分:图像导数、梯度和 Sobel 运算符首先出现在《走向数据科学》上。

来源:走向数据科学

计算机视觉是分析图像和视频的广阔领域。虽然许多人在听到计算机视觉时往往主要想到机器学习模型,但实际上,还有更多现有算法在某些情况下比人工智能表现更好!

在计算机视觉中,特征检测领域涉及识别图像中不同的感兴趣区域。然后,这些结果可用于创建代表局部图像区域的特征描述符 — 数值向量。之后,可以组合来自同一场景的多张照片的特征描述符来执行图像匹配,甚至重建场景。

特征检测 特征描述符

在本文中,我们将从微积分中进行类比来介绍图像导数和梯度。我们有必要了解卷积核和 Sobel 算子背后的逻辑,尤其是用于检测图像边缘的计算机视觉滤波器。

图像衍生品 渐变 索贝尔算子

图像强度

是图像的主要特征之一。图像的每个像素都具有三个分量:R(红色)、G(绿色)和B(蓝色),取值在0到255之间。值越高,像素越亮。像素的强度只是其 R、G 和 B 分量的加权平均值。

事实上,存在多个定义不同权重的标准。由于我们将重点关注 OpenCV,因此我们将使用他们的公式,如下所示:

强度公式
image = cv2.imread('image.png')B, G, R = cv2.split(image)grayscale_image = 0.299 * R + 0.587 * G + 0.114 * Bgrayscale_image = np.clip(grayscale_image, 0, 255).astype('uint8')intensity = grayscale_image.mean()print(f"图像 强度:{intensity:2f}")

灰度图像

图像可以使用不同的颜色通道表示。如果 RGB 通道代表原始图像,则应用上面的强度公式会将其转换为仅包含一个通道的灰度格式。

图像导数

我们可以正式地写:

示例