Canny 边缘检测的流程

Canny 边缘检测流程


Canny 算子是当今最有的边缘检测算法。

第一步:高斯平滑滤波:消除噪声

一般情况下,使用高斯平滑滤波器进行卷积操作。以下显示了 s i z e = 5 size = 5 size=5 的高斯内核是示例:
K = 1 139 [ 2 4 5 4 2 4 9 12 9 4 5 12 15 12 5 4 9 12 9 4 2 4 5 4 2 ] K=\frac{1}{139}\begin{bmatrix} 2 & 4 & 5 & 4 & 2\\ 4 & 9 & 12 & 9 & 4\\ 5 & 12 & 15 & 12 & 5\\ 4 & 9 & 12 & 9 & 4\\ 2 & 4 & 5 & 4 & 2 \end{bmatrix} K=1391245424912945121512549129424542


第二步 :缘增强:计算幅值和方向

此处,按照 Sobel 滤波器的步骤来操作:
1 运用一对卷积阵列(分别作用于 x 和 y 方向)
G x = [ − 1 0 + 1 − 2 0 + 2 − 1 0 + 1 ] G y = [ − 1 − 2 − 1 0 0 0 + 1 + 2 + 1 ] G_x = \begin{bmatrix} -1 & 0 & +1 \\ -2 & 0 & +2 \\ -1 & 0 & +1 \end{bmatrix} G_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ +1 & +2 & +1 \end{bmatrix} Gx=121000+1+2+1Gy=10+120+210+1

2 使用下列公式计算幅值和方向
G = G x 2 + G y 2 θ = a r c t a n ( G x G y ) G = \sqrt{G_x^2 + G_y^2} \\ \theta = arctan(\frac{G_x}{G_y}) G=Gx2+Gy2 θ=arctan(GyGx)
而梯度方向一般取这 4 4 4 个可能的角度之一: 0 、 45 、 90 、 135 0、45、90、135 04590135


第三步:非极大值抑制

这一步排除非边缘检测像素,仅仅保留了一些细线条(候选边缘)


第四步:高低阈值

Canny 使用了滞后阈值,滞后阈值需要两个阈值(高阈值和低阈值):

  1. 若某一像素位的幅度超高高阈值,该像素确认位边缘像素;
  2. 若某一像素位的幅度小于低阈值,该像素排除;
  3. 如某一像素位的幅度介于高阈值和低阈值之间,当该像素仅仅与一个边缘像素相连时,则确认位边缘像素;否则,排除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值