Canny 边缘检测是很流行的边缘检测算法,是在1986年由John F.Canny提出的。它是一个多级(multi-stage)算法。下面详细介绍每一级。
1.减少噪音
因为边缘检测对噪音非常敏感,所以实现边缘检测的第一步,是使用高斯滤波器对图像中的噪音进行移除。
2.寻找图像中的强度梯度(Intensity Gradient)
用Sobel kernel在水平和垂直方向过滤来平滑图像,并取得图像在水平和垂直方向的一阶导数(first derivate)
利用以上取得的两个图像,可以用以下公式找到每个像素的边缘梯度和方向:
梯度方向总是垂直于边。它被四舍五入为四个角中的一个,表示垂直、水平和两个对角线方向。
3.Non-maximum Suppression非最大值抑制
上述获取梯度的大小和方向之后,一张移除了不想要的像素(这些像素是指不组成边的)全图,为了得到这张全图(为了移除这些像素),对每一个像素进行查验,判断