• Canny Edge Detector


    Canny边缘检测算法有自己的理论和经验性的推导, 没仔细看/没看明白.
    它的步骤如下:

    1. 对原图的灰度图进行高斯滤波
    2. 求一阶导数, 得到每个像素点的梯度强度和方向.
    3. 非最大抑制. 对每个edge candidate像素点, 在它的edge方向上, 它的(3 imes 3)邻域内, 有两个相邻点. 如果当前像素点处的梯度强度比任意一个相邻点弱, 则将其置为0. 需要注意的是, edge的方向的计算方式见下图.
    4. double thresholding, 然后将点连接成线.
      single thresholding值不好选. double threshing的做法是取一大一小两个threshold, 分别得到两张新图:(T_H, T_L), 后者非零点的个数与前者非零点的个数比值在1到3之间. (T_H)上的非零点一定也是(T_L)上的非零点. 令: (T_L = T_L - T_H). 然后对于(T_H)上的每一个非零点, 找到它们在(T_L)上的所有非零邻接点, 两者并集就是最后的edge points.

    Canny Edge Detector比Sobel, LoG edge detector 的效果都要好.

    第二行第一个为LoG的结果, 第二个为Canny的结果. 从图中可以看出, Canny对edge的定位更准确, edge点的连通性也更好.

  • 相关阅读:
    4月21日Java作业
    5.14 Java作业
    第十周java作业
    4月30号作业
    第七周上机
    4.9Java
    通宵看剧有感
    error: pathspec 'xxxxxxxxx' did not match any file(s) known to git
    markdown格式测试
    博客申请通过啦
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/6148082.html
Copyright © 2020-2023  润新知