图像边缘检测分析比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像边缘检测分析比较
摘要:边缘检测是数字图像处理和模式识别领域的基本课题,着重分析了几种
经典的边缘检测算子并进行比较,同时阐述新的边缘检测方法的原理。分析结果表明图像边缘检测是一个非良态问题,寻求比较简单,能较好解决边缘检测精度的算法是未来的研究重点。
关键词:边缘检测;数学形态学;模糊理论
正文:
1.传统的边缘检测方法
1.1基于灰度直方图的边缘检测
基于灰度直方图门限法的边缘检测是一种最常用、最简单的边缘检测方法。对检测图像中目标的边缘效果较好。图像在暗区的像素较多,而其他像素的灰度分布比较平坦。为了检测出图像物体的边缘.把直方图用门限T分割成两个部分,然后对图像实施以下操作:
(1)扫描图像的每一行,将所扫描的行中每个像素点的灰度与T比较后得;
(2)扫描图像的每一列,将所扫描的列中每个像素点的灰度与T比较后得:
(3)将与合并,即得到物体的边界图像。
在以上过程中,门限T的选择将直接影响边缘检测的质量。由于直方图往往很粗糙,再加上噪声的影响更是参差不齐。这样就使得求图像极大、极小值变得困难。因此。可以用两条二次高斯曲线对目标和景物所对应的峰进行拟合,然后求二者的交点,并作为谷底,选取对应的灰度值为门限T,或用一条二次曲线拟合直方图的谷底部分。门限T可取为
T=-b/2a
1.2基于梯度的边缘检测
梯度对应一阶导数,梯度算子就是一阶导数算子。在边缘灰度值过渡比较尖锐,且在图像噪声比较小时,梯度算子工作的效果较好,而且对施加的运算方向不予考虑。对于一个连续图像函数,其梯度可表示为一个向量:
该向量的幅度和最大变化率出现时的角度分别为:
以上各式的偏导数需对每个像素的位置计算,实际应用中常用小区域模板进行卷
积来近似计算。对和各用一个模板,将两个结合起来就构成一个梯度算子。
根据模板的大小和元素值的不同,已提出许多不同的算子,常见的有Roberts算子,Sober算子, Prewitt算子和沈俊算子。
1.2.1 Sobel算子
Sobel于1970年提出了Sobel算子,与Prewitt算子相比较,Sobel算子对检测点的上下左右进一步加权。其加权模板如下:
=[ ++ ]-[+
+]
=[++]-[+
+]
Sobel算子和Prewitt算子一样具有平滑作用,能滤出一些噪声。去掉部分伪边缘,但同时也平滑了真正的边缘。其梯度幅度值为
=
如果大于某一定值,则我们认为(x,y)点位边缘点。
1.2.2 Roberts交叉算子
如果我们沿如下图方向角度求其交叉方向的偏导数,则得到Roberts于1963年提出的交叉算子边缘检测方法。该方法最大优点是计算量小,速度快。但该方法由于是采用偶数模板,如下图所示,所求的(x,y)点处梯度幅度值,其实是图中交叉点处的值,从而导致在图像(x,y)点所求的梯度幅度值偏移了半个像素(见下图)。
图像空间 梯度幅度空间
具体方法如下: 设图像
的梯度幅度为:
=
交叉算子模板
则模板运算结果: =- =
- ==+
如果大于某一定值,则我们认为(x ,y )点位边缘点
上述偶数模板使得提取的点(x,y )梯度幅度值有半个像素的错位。为了解决这个定位偏移问题,目前一般是采用奇数模板。这样就保证了在图像空间点(x,y)所求的梯度幅度值定位在梯度幅度值空间对应的(x,y)点上。 奇数模板:
在图像处理中,一般都是取奇数模板来求其梯度幅度值,即:以某一点(x,y )为中心,取其两边相邻点来构建导数的近似公式:
设两个相邻像素之间距离h=1
故其3*3系数模板为
1.2.3Prewitt边缘检测算子
Prewitt边缘算子是一种边缘样板算子。样板算子由理想的边缘子图像构成,依次用边缘样板去检测图像,与被检测区域最为相似的样板给出最大值,用这个最大值作为算子的输出。由图1中所示的两个卷积算子形成Prewitt边缘算子.与使用Sobel边缘算子的方法一样,图像中每个像素都用这两个核做卷积,取最大值作为输出,运算结果就是一幅边缘图像。适当取门限TH,如果.. R(i,j)≥TH则为阶跃边缘点。Robinson边缘算子也是一种边缘样板算子,其算法和Prewittt边缘算子相似,只是边缘样板不同。..
1.3基于二阶微分的边缘检测方法
1.3.1Laplacian边缘检测算子
为了突出增强图像中的孤立点、孤立线或线端点,在某些实际用途中常采用拉普拉斯算子,连续函数的拉普拉斯算子是一个二阶微分算子。其数学形式为:
由于Lalcapain算子是一个二阶导数,它将在边缘处产生一个陡峭的零交叉。Lalcapain算子是一个线性的、移不变算子.它的传递函数在频域空间的原点为零。因此,一个经Laplacian滤波过的图像具有零平均灰度。如果一个无噪声图像具有陡峭的边缘。可用 Laplacian算子将它们找出来。对经Laplacian算子滤波后的图像用零灰度值进行二值化会产生闭合的、连通的轮廓,并除了所有的内部点。但由于噪声的存在,二阶导数对噪声具有无法接受的敏感性,它的幅度会产生双边缘(不适合检测边缘,但可用于边缘定位),而且还不能检测边缘的方向。因此,Mart提出首先对图像用Gausss函数进行平滑,然后利用Laplacian 算子对平滑的图像求二阶导数后得到的零交叉点作为候选边缘,
1.4 Canny边缘检测算子
Cannny算子是一个具有滤波、增强和检测的多阶段的优化算子。在进行处理前,Can
nny算子先利用高斯平滑滤波器来平滑图像以除去噪声(即用高斯平滑滤波器与图像作卷积)。增强边缘是将邻域(或局部)强度值有显著变化的点突出来,一般通过计算梯度幅值来完成。
Canny分割算法采用一阶偏导的有限差分来计算梯度的幅值和方向。通过寻找,Y)的梯度的最大值来查找边缘。梯度由高斯滤波器的导数来计算。在处理过程中,Canny算法还将经过一个非极大值抑制的过程。最后该方法使用两个阈值来检测强边缘和弱边缘,若它们连接到了强边缘,则输出中只包含弱边缘。因此,这种方法更适合用于检测真正的弱边缘。
John Canny于1986年提出Canny算子,它与Marr(LoG)边缘检测方法类似,也属于是先平滑后求导数的方法。
John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:
1.好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘
点的概率要低;
2.高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;
3.对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假
响应边缘应该得到最大抑制。
用一句话说,就是希望在提高对景物边缘的敏感性的同时,可以抑制噪声的方法才是好的边缘提取方法
Canny算子求边缘点具体算法步骤如下:
1.用高斯滤波器平滑图像.
2.用一阶偏导有限差分计算梯度幅值和方向.
3.对梯度幅值进行非极大值抑制.
4.用双阈值算法检测和连接边缘.
1.5各种算子的比较
用各种边缘检测算子对一幅图像进行边缘检测,其结果如图2所示。从检测的结果来看,Robes算子提取边缘的结果边缘较粗,边缘定位不很准确,Sobel算子和Prewittt算子对边缘的定位就准确了一些,Kish算子比Sblrwtttrcoe算子和Pei算子定位更准确,而采用LoG算子进行边缘提取的结果要明显优于前4种算子,特别是边缘比较完整,位置比较准确。Canny算子则能较好地体现图像的弱边缘。