CV基础—— 边缘检测

边缘

边缘是图像强度函数快速变化的地方

如何检测边缘

为了检测边缘,我们需要检测图像中的不连续性,可以使用导数来检测不连续性
CV基础—— 边缘检测
如上图所示,上图的第一幅图表示一张数字图片,我们对水平红线处进行求导,便可得到上图二中的关系,可以看到在边缘处有着较大的跳变。但是,导数也会受到噪声的影响,因此建议在求导数之前先对图像进行平滑处理(上图三)。

但是,导数也会受到噪声的影响,因此建议在求导数之前先对图像进行平滑处理。 然后我们可以使用遮罩使用卷积来检测边缘。 同样,我不打算讨论数学部分,这里我们仅关注实现细节。

Sobel算子

Sobel算子是一阶导数的边缘检测算子,在算法实现过程中,通过3×3模板作为核与图像中的每个像素点做卷积和算,然后选取合适的阈值以提取边缘。采用3×3邻域可以避免在像素之间内插点上计算梯度。Sobel算子也是一种梯度幅值,即:其中的偏导数Sx 和Sy可用卷积模板来实现。
CV基础—— 边缘检测

CV基础—— 边缘检测

Canny边缘检测

Canny边缘检测算法是比较出色的算法,它包含以下四个步骤:

  1. 高斯滤波
  2. 计算梯度幅值和方向
  3. 非最大值抑制
  4. 使用上下阀值来检测边缘