实际图像分割一般只需要进行一阶和二阶导数,因为对于更高阶的导数,二阶的导数已经对噪声产生了敏感现象,所以高阶导数基本上就是去了应用的的价值,噪声对高阶导数影响太大。二阶导数就能表现出灰度突变的类别。例如,对于某些灰度变化比较均匀的图像,一阶导数可能就无法正确的找到边界,在这个时候在有些情况下,二阶导数往往能够获得足够有用的信息。虽然二阶导数对噪声也比较敏感,但可以先通过平滑滤波对图像进行去噪,然后再进行边缘检测。不过,二阶导数信息计算的算法一般都是过0点的,边缘检测得到的边缘点数相比之下较少,这就便于后期的处理和识别[19][20]。现如今各种存在的算子都是基于图像分割原理进行实际的计算,同时也是为了能够直接使用的计算单位;微分算子在图像处理中有着重要的地位,算法原理简单,边缘检测的的实际效果也不错,因此有必要了解和掌握一些基本的微分算子,对今后学习图像处理过程很有帮助,下面重点分析探讨最常见的几种微分算子。
2.3.1 Sobel算子
Sobel算子是离散型的差分算子,一般用在,它能够计算出图像亮度函数梯度的数值,不足之处是Sobel算子无法将图像和图像的背景完全区分出来,也就是说Sobel算子未对图像的灰度进行分析处理,由于Sobel算子并没有完全模拟人类的视觉系统,与人眼的成像不尽相同,所以它对图像的提取效果不是很理想,但Sobel算法原理比较的简单,就是3*3的水平和垂直方向上的模板运算。Sobel算子中默认邻域像素与当前像素并不相同,所以像素的距离如果不同,其对应的权值也就不同,自然运算的结果也就不一样。一般说来,距离远的像素对图像处理的影响也就比较小。
2.3.2 Prewitt算子
Prewitt算子与Sobel算子相似,但是权值不相同,两个算子对图像处理的结果差距较大,由实际效果得知Sobel的边缘检测效果比Prewitt的要好。Prewitt利用像素平均进而起到噪声的抑制,但是像素平均效果就是对图像进行了低通滤波。
2.3.3 Canny算子
Canny算子的实现相对前两个就繁琐,但是该算子对图像处理的效果明显比前面两种好,Canny算子可以进行滤波,也可以增强图像,还可以作为检测算子,在对图像进行处理前,Canny算子一般优先除噪,通过高斯平滑滤波器来实现,而对于图像的分割Canny算法通过一阶偏导的有限差分来得出梯度的幅值和方向,在实际处理过程中,Canny算子还需要抑制非极大值,最后Canny算子还要通过两个阈值无限逼近以期找到一个最优的边缘检测算法,最优边缘检测的含义是:(1)图像检测的结果良好,或者说边缘检测的误检率低,图像中实际出现的边缘经过Canny检测后不能没有,也不能是图像中本来没有出现的边缘出现在了检测结果之中,出现虚假信息。评判一个检测算子的好坏检测的精度是应该优先考虑的,性能的好坏都取决于边缘检测的误差;(2)检测出的边缘位置要准确,或者说检测结果中图像的边缘位置与实际图像边缘的位置充分接近。 雨雾气候条件下车速检测技术研究(5):http://www.751com.cn/zidonghua/lunwen_11999.html