在数字图像中“边缘”往往包含着丰富且有用的信息,如城市中的道路、河流的水涯线、
建筑物的边界等,这些边缘信息在数字摄影测量、模式识别等领域有着重要的研究意义。对
于人脸检测来说,一个好的边缘检测算法能很好的划分出待检测区域,有效降低无检测率。对
边缘检测算法进行研究性学习,了解该算法的执行过程和有关改进,对于人脸检测领域的深
入学习是不可或缺的。在众多的边缘检测算子中,Canny算子是目前最受欢迎的边缘检测算
子口]。Canny算子具有良好的信噪比,对单一边缘具有唯一响应,较好的定位性能等优点,
因此决定对其深入学习了解。
Canny 边缘检测算子(Canny,1986)主要由 3 个目标形成:无附加响应的最优检测、检
测边缘位置和实际边缘位置之问距离最小的正确定位、减少单边缘的多重响应而得到单响
应。为实现以上 3 个目标,Canny边缘检测的主要步骤如下:
(1)对图像应用高斯平滑处理 Canny指出高斯算子对图像平滑处理是最优的。二维高斯
平滑算子如下:
通过微分,把二维平滑算子分解为水平和垂直两个方向的滤波器,从而提高了平滑的速
度。
传统 Canny算子采用 2×2 邻域一阶偏导的有限差分来计算平滑后的数据阵列 I(z,y)
的梯度幅值和方向,其中水平和垂直方向的差分算子分别为:
Dx[i,j]=(I[i,j+1]-I[i,j]+I[i+1,j+1]-[i+1,j])/2
Dy[i,j]=( I[i,j] - I[i+1,j] + I[i,j+1]- I[i+1,j+1])/2
此处的梯度模值和方向分别为:
数字图像中的边缘对应图像中灰度变化剧烈的部分,即梯度模值比较大的部分,因此可
以把边缘检测问题转换为计算梯度模值的局部极大值的问题,即将梯度模值的局部极大值点
作为边缘,这一过程就是抑制局部非最大的过程(Non-maxima Sup—pression,NMS)。通过
抑制局部非最大,可以提取出图像中粗略的边缘信息。Canny算子通过对每个梯度非零的点,
沿梯度方向上查找相邻像素的梯度模值,如果该点梯度模值小于任意一个相邻像素的梯度模
值,将该点剔除,并将其梯度模值设为零;如果该点梯度模值大于相邻两个像素的梯度模值,