Canny 在1986 年提出了基于最优化算法的边缘检测算子[1 16]。针对边缘点的计算,它的成功在于依靠一套完整的定义规则。Canny 算子不是通过简单的梯度运算判定像素是否是边缘点,它结合邻域像素的梯度判定局部极大值,对虚假边缘响应具有最大抑制,并具有边界跟踪能力。为了实现Canny 算子的检测,第一步在定位与检测边缘前必须抑制噪声。采用高斯平滑抑制噪声,但是高斯模板的宽度越大,对噪声检测的敏感越低,同时对边缘定位产生误差就会相应增加。现以5 ×5 大小,标准偏差为1 的高斯模板为例,见表6.1 所示。
表6.1 高斯模板(5 ×5,标准偏差为1)
第一步,通过平滑图像与消除噪声,依据图像的梯度来寻求边缘强度。使用Sobel 算子求取图像的二维空间梯度,见表6.2 和表6.3 所示。
6.2 图像二维空间水平方向Gx
6.3 图像二维空间垂直方向GY
则梯度模值定义如下:
第二步,一旦获得图像水平与垂直方向梯度,进而就可以得到在该点的图像边缘方向。当水平方向的梯度模值等于零,而垂直方向的梯度模值也等于零时,则规定它的边缘方向为0°或者180°。当水平方向的梯度模值等于零,垂直方向的梯度模值不等于零时,则规定它的边缘方向为90°或者270°。(www.xing528.com)
第三步,一旦边缘方向确定,可以将该边缘方向与预设置的图像边缘方向比较,将该方向归类到与它最接近的设置方向。比如将边缘方向分为8 个方向,假如计算的边缘方向与某设置方向最接近,则将它归为该类。8 个边缘方向设置参见图6.1 梯度方向的扇区划分图。
第四步,一旦将边缘方向归类,可以利用局部极大值特性判定边缘点。也就是说,定义非极值点为非边缘点,而极值点为边缘候选点。
第五步,为了保持边缘的连续性,减少伪边缘,使用双门限确定边缘点。将梯度模值大于高阈值的边缘候选点认定为边缘点,而将梯度模值小于低阈值的边缘候选点认定为非边缘点。对于梯度模值介于两者阈值之间的候选点,根据边缘点连通特性,判定真假边缘点。
Canny 算法方框图如图6.2 所示:
图6.1 梯度方向的扇区划分图
图6.2 Canny 边缘检测算法
当运动目标处于复杂环境中时,Canny 算子检测出背景以及运动目标的边缘,由于缺乏目标先验知识,运动目标的判定具有不确定性,因此边缘图像含有非目标成分。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。