2。2。2 LoG算子
正如2。2。1中提到的,通过分析图像灰度曲线的二阶导数值来检测图像的边缘检测算子的抗噪性非常的低,所以,人们想到了在处理图像之前是否增加一些方法把噪声处理掉。
LoG算子的基本思想是:先在图像中的一定的范围做平滑滤波操作,然后运用差分的方法去检测对应尺度上的边缘[[[] 米林。 机器视觉中边缘检测算法的研究。 重庆理工大学硕士学位论文。 2010:18-35 ]]。有两个因素能够影响到平滑滤波器的选择,一个是平滑滤波器在空间中的误差要小,在空间上能够保持平稳;另外一个就是要求滤波器在频率域中的误差要小,在有限的通带内能够保持平稳。而只有高斯滤波器能够满足这两个要求。
这种算法的特点就是在检测图像的边缘之前,先将图像与平滑滤波器进行卷积操作,这样既能降低图像中的噪声又能平滑图像,细小的结构以及孤立的噪声点也会被过滤掉。不过如前面所说的平滑图像会导致图像的边缘变粗,这样就需要考虑将边缘领域中的一阶导数的最大值的点作为边缘点,相当于利用拉普拉斯算子的二阶导数的零交叉点去检测。另外在满足二阶导数的零交叉点的条件下,还需要让一阶导数大于给定的某个阈值来确定边缘点,这样就可以减少检测出来的不明显的边缘。文献综述
拉普拉斯的算子公式为:
(2-15)
在上述的公式中的选择是非常重要的,如果选择比较大的值时,算子的平滑的作用就好,也有不错的噪声过滤效果,但是它会偏移原图像中的边缘,边缘的定位就低;如果选择比较小值时,算子的边缘定位就高,但是边缘的细节容易发生变化,抗噪能力也低。所以,在用这个算子做边缘检测时需要根据边缘检测的要求以及图像的噪声情况来选取适当的值。
一般LoG算子为了在边缘检测中能够有好的效果,往往会选取尺度大的卷积模板,典型的模板如下:
LoG算子的仿真结果如图2-3表示。
(原始图像) (仿真结果)
图2-3 LoG算子的边缘检测仿真结果
2。3 Canny算子
Canny不仅仅提出了三点评价准则,还给出了具体的关于这三点准则的数学表达式,这就让在图像中找出关于这个图像的最优检测算子的问题转变为数学函数公式优化的问题,从而为对于不同的对象寻找最优滤波器创造了条件。
Canny算子的具体步骤如下:
(1)先用式(2-15)给出的函数对图像做平滑操作,消除掉图像中存在的噪声。
(2)利用基于一阶导数的算子算出所有点的边缘方向和其邻域的梯度值。
(3)对在(2)操作中的得到的边缘点设置脊,然后找出所有的脊的顶部,并且把所有不在脊的顶部的点的值都设为零,这样就能得到一条输出直线。
(4)设置两个阈值T1和T2(其中T1<T2),对脊点做处理,大于T2的脊点被设置为强边缘点,大于T1小于T2的点设置为弱边缘点。因为边缘阵列T2是通过高阈值得到的,因此它的假边缘就比较少,但是同时也损失了部分有用的细节[[[] 焦斌亮。 基于数学形态学的彩色图像边缘检测。 燕山大学硕士学位论文。 2010:22-41]]。不过T1的阈值比较低,能够保留较多的信息,这样就可以把T2做基础,在其上补充链接T1,最后就能得到比较详细的图像的边缘。
在二维图像中,Canny算子各向同性的特性使得其边缘检测的效果要比LoG的效果好,而且具有更强的抗噪能力。不过也有不足之处,如果想要得到比较好的检测效果,所需要选择的滤波的尺度就必须很大,但是这样往往会导致一些边缘细节的损失。Canny算子的仿真效果如2-4所示。 matlab基于形态学的数字图像处理(5):http://www.youerw.com/jisuanji/lunwen_90157.html