canny边缘检测
Canny边缘检测算法是1986提出的多阶段的边缘检测算法。
- 预处理 由于边缘易受噪声影响,所以对图像利用高斯滤波器来去除噪声。
, 其中
,
分别为滤波核范围内像素的均值和方差,另
参数也可以直接在函数中指定。
- 计算梯度图 分别计算图像中像素点的梯度,获得当前图像的梯度大小和梯度方向两个对应的图。梯度方向垂直于图像边缘,为方便后续计算,将梯度方向量化为4条线:水平、垂直、及其两个对角(共8个方向的值);
图片来自 这里
- 非极大值抑制NMS,类似检测算法中的后处理NMS。此处应用的对象为同一梯度方向上像素的梯度值,保留该方向上的最大值,将其他值抑制为0。通过该处理,将边缘宽度减小至1个像素。
图片来自 这里
- Hysteresis Thresholding,翻译为迟滞阈值。关于Hysteresis(迟滞现象或滞后现象),百科进行如下解释:解释变量对被解释变量的影响不可能在短时间内完成,在这一过程中通常存在时间滞后。此处指采用minval和maxval两个值来判断最终的边缘:梯度值大于maxval的点为最终的边缘点;小于minval的点为非边缘点;介于minval和maxval之间的梯度值需要判定该边缘是否与最终的边缘连通来判定是否为有效的边缘。如下所示,A边缘为有效边缘,介于minval和maxval之间的边缘B和C,由于C与有效边缘A连通,故视为有效边缘,B没有连通有效边缘,故视为无效边缘。
图片来自 这里
参考文献:
- Canny Edge Detection
- canny算法
- 滞后现象
还没有评论,来说两句吧...