各种边缘检测的比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各类边缘检测算子的比较
摘要:边缘检测是图像处理和计算机视觉中的基本问题,其目的标识数字图像中亮度变化明显的点。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于搜索和基于零交叉。基于搜索的边缘检测算子有:Roberts算子,Prewitt 算子,Sobel算子,Canny算子,罗盘算子。基于零交叉的边缘检测算子有Marr-Hildreth边缘检测器。本篇论文分析了各种检测算子的特点,并对各种边缘检测算法的检测结果进行了比较。
关键词:边缘检测;图像处理;算子
0 引言
图像边缘是图像的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图像处理中一个重要的环节。然而,图像边缘受很多因素的影响。这些包括(i)深度上不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。目前,常用的边缘检测算法没有哪一种具有绝对的优越性。因此,对各种边缘检测算子的性能进行比较分析,根据图像边缘的特征选择比较合理的边缘检测显得尤为重要。
1 基于搜索的边缘检测算子
基于搜索的边缘检测方法首先计算边缘强度,通常用一阶导数表示,例如梯度模;然后,用计算估计边缘的局部方向,通常采用梯度的方向,并利用此方向找到局部梯度模的最大值。
1.1 Roberts 算子
Roberts 算子【1】是一种利用局部差分算子寻找边缘的算子,它由下式给出 : g ( x , y) = [ f ( x , y) - f ( x + 1 , y + 1) ]2 +[ f ( x + 1 , y) - f ( x , y + 1) ]2(1) 其中 f ( x , y ) 、 f ( x + 1 , y ) 、 f ( x , y + 1) 和f ( x + 1 , y + 1) 分别为 4领域的坐标,且是具有整数像素坐标的输入图像。
Roberts 算子是2X 2 算子模板。图1所示的2个卷积核形成了Roberts 算子。图像中的每一个点都用这2个核做卷积。
1.2 Prewitt 算子
Prewitt 算子由下式给出:
S P = ( dx 2 + dy 2) 1/2 (2)
Prewitt 算子是 3 ×3 算子模板 。图 3 所示的2个卷积dx 、dy 形成了Prewitt 算子。与 Sobel 算子的方法一样 ,图象中的每个点都用这 2 个核进行
卷积,取最大值作为输出值。Prewitt 【2】
算子也产生1 幅边缘幅度图象。
1.3 Sobel 算子
Sobel 【3】算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的阈值来取舍。它由下式给出:
S = ( dx 2 + dy 2) 1/2 (3)
Sobel 算子是 3×3 算子模板。图 2 所示的 2个卷积核dx 、dy 形成Sobel 算子。一个核对通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。2个卷积的最大值作为该点的输出值。运算结果是1 幅边缘幅度图象 。
1.4 Canny 算子
Canny 【4】边缘检测算子是近年来在数字图像处理中广泛应用的边缘算子,它是应用变分原理推导出的一种用高斯模块导数逼近的最优算子。通过 Canny 算子的应用,可以计算出数字图像的边缘强度和边缘梯度方向,为后续边缘点判断提供依据。
公式:Gn = n ∇G (4)
式中
n 就是边缘方向,∇G 是梯度矢量,而边缘强度由 |∇G * f (x, y)| 决定。
在 Canny 算子计算实现过程中,为了提高速度,同样可以采用分解的方法,
把∇G 的滤波 模块分解为二个一维的行列滤波器。即
(5)
(6)
将(4)(5)分别与图像f (i,j)卷积,得到:
(7)
(8)
式中A(i, j) 反映了图像上(i, j) 点处的边缘强度,α(i, j) 是图像(i, j) 点处的法向方向(正交于边缘方向)。
当一个像素满足以下3 个条件时,则认为是图像的边缘点:
(1) 该点的边缘强度大于沿该点梯度方向的两个相邻像素点的边缘强度;
(2) 与该点梯度方向上相邻两点的方向差小于0 45 ;
(3) 以该点为中心的3x3 领域中的边缘强度极大值小于某个阈值;
条件(1)(2)的作用是将在梯度方向上的两个相邻像素从候选边缘点中剔除,条件(3)的作用是消除虚假的边缘点。
2 基于零交叉的边缘检测算子
基于零交叉的方法找到由图像得到的二阶导数的零交叉点来定位边缘.
2.1Marr-Hildreth 边缘检测算子
Marr-Hildreth 边缘检测算子是将高斯算子和拉普拉斯算子结合在一起而形成的一种新的边缘检测算子,先用高斯算子对图像进行平滑,然后采用拉普拉
斯算子根据二阶微分过零点来检测图像边缘,因此该算子也可称为LOG (Laplacian of Gaussian)算子。
(9)
式中,G(x, y,σ ) 为高斯函数,x, y 为图像的横坐标和纵坐标。
在数字图像中实现图像与模块卷积运算时,运算速度与选取的模块大小有直接关系,模块越大,检测效果越明显,速度越慢,反之则效果差一点,但速度提高很多。因此在不同的条件下应选取不同大小的模块。在实际计算过程中,还可以通过分解的方法提高运算速度,即把二维滤波器分解为独立的行、列滤波器[2]。常用5x5 模块的Marr-Hildreth 算子为
图4 Marr-Hildreth算子
2几种算子的比较
在数字图像处理中,衡量边缘检测好坏的标准有:运算速度、边缘定位能力以及噪声抑制能力。
首先,运算速度方面,对于一个N*N的图像,其运算量如下: