canny边缘检测

绝地灬酷狼 2023-02-19 15:29 81阅读 0赞

Canny边缘检测算法是1986提出的多阶段的边缘检测算法。

  • 预处理 由于边缘易受噪声影响,所以对图像利用高斯滤波器来去除噪声。

G\_\{0\}(x, y) = A e^\{ \\dfrac\{ -(x - \\mu\_\{x\})^\{2\} \}\{ 2\\sigma^\{2\}\_\{x\} \} + \\dfrac\{ -(y - \\mu\_\{y\})^\{2\} \}\{ 2\\sigma^\{2\}\_\{y\} \} \}, 其中A=\\frac\{1\}\{2\\pi \\sigma ^\{1\}\\sigma ^\{2\}\}, \\mu ,\\sigma分别为滤波核范围内像素的均值和方差,另\\sigma参数也可以直接在函数中指定。

  • 计算梯度图 分别计算图像中像素点的梯度,获得当前图像的梯度大小和梯度方向两个对应的图。梯度方向垂直于图像边缘,为方便后续计算,将梯度方向量化为4条线:水平、垂直、及其两个对角(共8个方向的值);

20200621162812813.png 图片来自 这里

  • 非极大值抑制NMS,类似检测算法中的后处理NMS。此处应用的对象为同一梯度方向上像素的梯度值,保留该方向上的最大值,将其他值抑制为0。通过该处理,将边缘宽度减小至1个像素。

2020062116485489.png 图片来自 这里

  • Hysteresis Thresholding,翻译为迟滞阈值。关于Hysteresis(迟滞现象或滞后现象),百科进行如下解释:解释变量对被解释变量的影响不可能在短时间内完成,在这一过程中通常存在时间滞后。此处指采用minval和maxval两个值来判断最终的边缘:梯度值大于maxval的点为最终的边缘点;小于minval的点为非边缘点;介于minval和maxval之间的梯度值需要判定该边缘是否与最终的边缘连通来判定是否为有效的边缘。如下所示,A边缘为有效边缘,介于minval和maxval之间的边缘B和C,由于C与有效边缘A连通,故视为有效边缘,B没有连通有效边缘,故视为无效边缘。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h6aGoyMDA3_size_16_color_FFFFFF_t_70 图片来自 这里

参考文献:

  1. Canny Edge Detection
  2. canny算法
  3. 滞后现象

发表评论

表情:
评论列表 (有 0 条评论,81人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Canny边缘检测算法

    1、概述       图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较...

    相关 canny边缘检测

    Canny边缘检测算法是1986提出的多阶段的边缘检测算法。 预处理 由于边缘易受噪声影响,所以对图像利用高斯滤波器来去除噪声。 ![G\_\{0\}(x, y) =

    相关 Canny 边缘检测

    Canny 边缘检测主要步骤: 1. 先把图像变成灰色 2. 计算图像梯度,其中每个像素的亮度对应该店的梯度值。通过寻找最大的梯度值,就可以找到边缘。 首先,我们需要读

    相关 canny边缘检测C++实现

    Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算