该内容为
- 《学习图像局部特征检测和描述-基于OpenCV源码分析的算法与实现》
- 《OpenCV 3 计算机视觉-Python语言实现》
- OpenCV官方网站的 https://docs.opencv.org/master/da/d22/tutorial_py_canny.html
的学习内容
1 Canny 边缘检测理论分析
Canny 边缘检测方法是由 Canny 于1996 年提出的一种公认为效果较好的边缘检测方法。
一个好的边缘检测方法应该满足三项指标
- 1、低失误率,即不能漏检也不能错检
- 2、高的位置精度,标定的边缘像素点与真正的边缘中心之间距离应该最小
- 3、每个边缘应该由唯一的响应,即得到单像素宽度的边缘。
基于此,Canny提出了判定边缘检测算子的3个准则:
- 1 - 信噪比准则
- 2 - 定位精度准则
- 3 - 单边缘响应准则
Canny 算子实现过程共有4(5)个步骤:
- 1 - 平滑处理,使用高斯滤波器对图像进行去噪处理
- 2 - 寻找图像的强度梯度 / 计算梯度 / 梯度检测
- 3 - 非极大值抑制,即在图像边缘上使用非最大抑制NMS
- 4 - 滞后阈值处理,即在检测到的边缘上使用双阈值去除假阳性(false positive)
- 5 - 最后分析所有边缘及其之间的连接,以确保保留真正的边缘,同时消除不明显的边缘
1.1 Canny算子实现过程详细讲解
1.1.1 平滑处理
所有的边缘都极易受到噪声的干扰,为防止检测结果的偏差较大,有必要使用平滑滤波的方法滤除噪声。高斯滤波方法是常用的滤波方法,二维图像应用二维高斯函数,它的定义为
式中 σ 表示 高斯函数的标准差。只要把输入图像与二维高斯函数进行卷积,即可得到平滑后的图像。