1、资源搜索
[OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
边缘检测 从Roberts到Canny算子
图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny)
2、本人总结
开始讲解之前,还是老规矩先讨论一下为什么会出现各种算子。计算机不像我们人眼,看到一张图像就知道里面含有什么物体。它的智力是非常低的,我们需要慢慢把图像中的关键信息告诉它后才能分析图像中的内容。而在图像中最重要一部分就是边缘信息,我们人类其实也是根据轮廓对这个目标作出判断。这里我们将主要介绍Sobel,Robert, Prewitt,Laplacian,Canny边缘检测算子,并采用理论加实践方式学习。
上面提到算子中其实主要分为两种一阶导数和二阶导数算子,其实可以使用更高阶的导数,但是噪声的影响,在纯粹二阶导数操作就会出现对噪声敏感现象,三阶段以上导数信息容易丢失应用价值。二阶导数还可以说明灰度突变类型,在有些情况下,如灰度变化均匀图像,只利用一阶导数可能找不到边界,但使用二阶导数就能提供很有用的信息。对于二阶导数对噪声敏感的问题,我们一般要对图像进行平滑滤波,消除噪声,然后在进行边缘检测。因为二阶导数是基于过零检测的,因此得到的边缘点数较少,有利于后继的处理和识别工作。
2.1 Sobel算子
2.1.1 公式推导
请让我们根据公式得到的算子来说明一下:
上面得到的是相关模板,要与图像进行卷积操作的话,需要将模板旋转180度:
看到卷积后的公式,我们大概应该理解为什么第二个公式会添加负号。