Canny边缘检测算法分为以下四个步骤:
1图像平滑
由于边缘检测对图像噪声非常敏感,因此我们将其用作第一步
高斯滤镜使图像平滑。
2查找图像渐变
在平滑的图像上使用Sobel运算符计算水平梯度
和垂直渐变
然后我们可以计算图像中每个像素的渐变大小为
canny边缘检测基本原理华体会app官方下载 ,渐变方向是
canny边缘检测基本原理,渐变方向通常垂直于边缘方向。
3非最大抑制
获得每个像素的渐变大小和方向后,我们遍历每个像素,以确定像素的渐变大小是否在像素的渐变方向附近是其局部最大值。如下图所示:
点A在边缘上,A的倾斜方向垂直于边缘澳门国际 ,并且B和C在A的倾斜方向上,因此比较A,B和C以确定A的倾斜度是否为a局部最大值。如果A的梯度是局部最大值,则A进行下一步,否则判断A不是边缘im体育平台 ,并且将A抑制(设置为0)。
4个滞后阈值法(双重阈值)
在此步骤中,我们设置了两个阈值
和
。遍历所有像素,渐变大小大于
将像素归类为“确定的边缘”像素并保留;渐变大小小于
的像素
被认为不属于边缘亚博体彩app ,并被丢弃。对于介于
和
像素之间
抢庄牛牛 ,如果它们连接到“确定的边缘”像素,则将它们视为边缘的一部分。否则,它们也将被丢弃。如下图所示:
A在
以上,因此被视为“定边”。尽管C低于
,但是它连接到边A,所以C也被认为是边,我们得到了完整的曲线。尽管B高于最小值,并且与边缘C处于同一区域,但是它没有连接到任何“确定的边缘”,因此将其丢弃。因此,为了获得正确的结果,我们必须相应地选择合适的结果
和
。
经过上述四个步骤,我们得到了图像的边缘。
OpenCV中Canny()方法的参数与上面的描述一致。