利用高斯函数的可分性k8娱乐手机版客户端

当前位置:觊发娱乐k8下载app > k8娱乐手机版客户端 > 利用高斯函数的可分性k8娱乐手机版客户端
作者: 觊发娱乐k8下载app|来源: http://www.baiyephoto.net|栏目:k8娱乐手机版客户端

文章关键词:觊发娱乐k8下载app,边缘算子

  常用边缘检测算子比较_计算机软件及应用_IT/计算机_专业资料。常用边缘检测算子 边缘检测算子 边缘检测经典算子:Roberts 算子、Sobel 算子、Prewitt 算子、Laplacian 算子、LOG 滤 波器(Marr-Hildreth 算子) 、Kir

  常用边缘检测算子 边缘检测算子 边缘检测经典算子:Roberts 算子、Sobel 算子、Prewitt 算子、Laplacian 算子、LOG 滤 波器(Marr-Hildreth 算子) 、Kirsch 算子、Canny 算子等。 Roberts 算子 景物的边缘总是以图像中强度的突变形式出现的, 所以景物边缘包含着大量的信息。 由于景 物的边缘具有十分复杂的形态,因此,最常用的边缘检测方法是所谓的“梯度检测法” 。 设 f ( x, y ) 是图像灰度分布函数; s ( x, y ) 是图像边缘的梯度值; ? ( x, y ) 是梯度的方向。 1 2 则有 s ( x, y ) ? ?? f ( x ? n, y) ? f ( x, y)? ? ? f ( x, y ? n) ? f ( x, y)? ? 2 2 ( 1) (n=1,2,...) ? ( x, y ) ? tan ?1 ?? f ( x, y ? n) ? f ( x, y ) ? / ? f ( x ? n, y ) ? f ( x, y ) ?? 式(1)与式(2)可以得到图像在(x,y)点处的梯度大小和梯度方向。 将式(1)改写为: (2) g ( x, y ) ? ? ? f ( x, y ) ? ? ? f ( x ? 1, y ? 1) ? ? ? ? f ( x ? 1, y ) ? 2 f ( x, y ? 1) ? ? 1 2 2 ? (3) g ( x, y ) 称为 Roberts 边缘检测算子。式中对 f ( x, y ) 等的平方根运算使该处理类似于人类 视觉系统的发生过程。事实上 Roberts 边缘检测算子是一种利用局部差分方法寻找边缘的算 子,Robert 梯度算子所采用的是对角方向相邻两像素值之差,所以用差分代替一阶偏导,算 子形式可表示如下: ? ?? x f ( x, y ) ? f ( x, y ) ? f ( x ? 1, y ? 1) ? ? ?? y f ( x, y ) ? f ( x ? 1, y ) ? f ( x, y ? 1) (4) 上述算子对应的两个 2 ? 2 模板如图(A)所示。实际应用中,图像中的每个像素点都用这 两个模板进行卷积运算,为避免出现负值,在边缘检测时常提取其绝对值。 1 0 (a) 0 -1 0 -1 ( b) 1 0 第1页 图(A)Robert 算子模板 Sobel 算子 该算子是由两个卷积核 g1 ( x, y ) 与 g 2 ( x, y ) 对原图像 f ( x, y ) 进行卷积运算而得到的。 其数学表达式为: M N ?M N ? S ( x, y ) ? MAX ? ?? f (m, n) g1 (i ? m, j ? n), ?? f (m, n) g 2 (i ? m, j ? n) ?(5) ? m?1 n ?1 m ?1 n ?1 ? 实际上 Sobel 边缘算子所采用的算法是先进行加权平均,然后进行微分运算,我们可以 用差分代替一阶偏导,算子的计算方法如下: ?? ? x f ( x, y ) ? ? f ( x ? 1, y ? 1) ? 2 f ( x, y ? 1) ? f ( x ? 1, y ? 1) ? ? ? f ( x ? 1, y ? 1) ? 2 f ( x, y ? 1) ? f ( x ? 1, y ? 1) ? ? ? ? ? y f ( x, y ) ? ? f ( x ? 1, y ? 1) ? 2 f ( x ? 1, y ) ? f ( x ? 1, y ? 1) ? ? ? f ( x ? 1, y ? 1) ? 2 f ( x ? 1, y ) ? f ( x ? 1, y ? 1) ? ( 6) Sobel 算子垂直方向和水平方向的模板如图(B)所示,前者可以检测出图像中的水平 方向的边缘,后者则可以检测图像中垂直方向的边缘。实际应用中,图像中的每一个像素点 都用这两个卷积核进行卷积运算, 取其最大值作为输出。 运算结果是一幅体现边缘幅度的图 像。 -1 0 1 -2 0 2 (a) -1 0 1 -1 -2 -3 0 0 0 ( b) 1 2 1 图(B)Sobel 算子模板 Prewitt 算子 Prewitt 边缘检测算子就是一种利用局部差分平均方法寻找边缘的算子,它体现了三对 像素点像素值之差的平均概念,因为平均能减少或消除噪声,为此我们可以先求平均,再求 差分,即利用所谓的平均差分来求梯度。用差分代替一阶偏导可得算子形式如下: ?? ? x f ( x, y ) ? ? f ( x ? 1, y ? 1) ? f ( x, y ? 1) ? f ( x ? 1, y ? 1) ? ? ? f ( x ? 1, y ? 1) ? f ( x, y ? 1) ? f ( x ? 1, y ? 1) ? ? ? ?? y f ( x, y) ? ? f ( x ? 1, y ? 1) ? f ( x ? 1, y ) ? f ( x ? 1, y ? 1)? ? ? f ( x ? 1, y ? 1) ? f ( x ? 1, y ) ? f ( x ? 1, y ? 1) ? ( 7) Prewitt 边缘检测算子的两个模板如图(C)所示,它的使用方法同 Sobel 算子一样,图像中 的每个点都用这两个核进行卷积,取得最大值作为输出。Prewitt 算子也产生一幅边缘图像。 第2页 -1 0 1 -1 0 1 -1 0 1 1 1 1 0 0 0 -1 -1 -1 (a) ( b) 1.1.1.1.1.1.1.1 图(C)Prewitt 算子模板 Laplace 算子 对于阶跃状边缘,其二阶导数在边缘点出现过零交叉,即边缘点两旁的二阶导数取异号,k8娱乐手机版客户端据 此可以通过二阶导数来检测边缘点。 拉普拉斯边缘检测算子正是对二维函数进行二阶导数运 算的标量算子,它的定义是: ? 2 f ( x, y ) ? ?2 ?2 f ( x , y ) ? f ( x, y ) ?x 2 ?y 2 ( 8) 用差分代替二阶偏导时,与前述三个一阶导数算子不同,拉普拉斯算子的形式可表示如下: 2 ?? ? f ( x, y ) ? f ( x ? 1, y ) ? f ( x ? 1, y ) ? f ( x, y ? 1) ? f ( x, y ? 1) ? 4 f ( x, y ) ? 2 ? ?? f ( x, y ) ? f ( x ? 1, y ? 1) ? f ( x, y ? 1) ? f ( x ? 1, y ? 1) ? f ( x ? 1, y ) ? f ( x ? 1, y ) ? f ( x ? 1, y ? 1) ? f ( x, y ? 1) ? f ( x ? 1, y ? 1) ? 8 f ( x, y ) (9) 拉普拉斯边缘检测算子的模板如图(D)所示,模板的基本特征是中心位置的系数为正,其 余位置的系数为负, 且模板的系数之和为零。 它的使用方法是用图中的两个点阵之一作为卷 积核,与原图像进行卷积运算即可。拉普拉斯算子又是一个线性的移不变算子,它的传递函 数在频域空间的原点为零,因此,一个经拉普拉斯滤波过的图像具有零平均灰度。拉普拉斯 检测模板的特点是各向同性,对孤立点及线端的检测效果好,但边缘方向信息丢失,对噪声 敏感,整体检测效果不如梯度算子。因此,它很少直接用于边缘检测。但注意到与 Sobel 算 子相比,对图像进行处理时,拉普拉斯算子能使噪声成分得到加强,对噪声更敏感。 0 -1 0 -1 4 -1 (a) 0 -1 0 -1 -1 -1 -1 8 -1 ( b) -1 -1 -1 图(D)Laplace 算子模板 第3页 Marr-Hildreth 算子 实际应用中, 由于噪声的影响, 对噪声敏感的边缘检测点检测算法 (如拉普拉斯算子法) 可能会把噪声当边缘点检测出来,而真正的边缘点会被噪声淹没而未检测出。为此 Marr 和 Hildreth 提出了马尔算子,因为是基于高斯算子和拉普拉斯算子的,所以也称高斯-拉普拉 斯(Laplacian of Gaussian,LoG)边缘检测算子,简称 LoG 算子。该方法是先采用高斯算 子对原图像进行平滑又降低了噪声, 孤立的噪声点和较小的结构组织将被滤除由于平滑会导 致边缘的延展, 因此在边缘检测时仅考虑那些具有局部最大值的点为边缘点, 这一点可以用 拉普拉斯算子将边缘点转换成零交叉点, 然后通过零交叉点的检测来实现边缘检测。 所谓零 交叉点就是: 如果一个像素处的值小于一 ? 0 , 而此像素 8-连通的各个像素都是大于 ? 0 ( ? 0 是一个正数) , 那么这个像素就是零交叉点。 这样还能克服拉普拉斯算子对噪声敏感的缺点, 减少了噪声的影响。二维高斯函数为 h( x, y ) ? exp(? x2 ? y2 ) 2? 2 (10) 则连续函数 f ( x, y ) 的 LoG 边缘检测算子定义为 G ( x, y ) ? ?? 2 ? h( x, y ) ? f ( x, y ) ? 2 ?? ? ?? h( x, y ) ? ? * f ( x, y ) ? H ( x, y )* f ( x, y ) (11) H ( x, y ) ? ?? 2 h( x, y ) ? ? 2 ? r2 r2 exp( ? ) ?4 2? 2 (12) 其中 r 2 ? x 2 ? y 2 , ? 是标准差。算子 H ( x, y ) 是一个轴对称函数,其横截面如图(E)所示。 由于它相当的平滑,能减少噪声的影响,所以当边缘模糊或噪声较大时,利用 H ( x, y ) 检测 过零点能提供较可靠的边缘位置。 H(x,y) r 第4页 0 图(E)H(x,y)的截面图 LoG 算子在 (x,y) 空间具有以原点为中心旋转的对称性, LoG 滤波器具有如下三个显著特点: ? 该滤波器中的高斯函数部分对图像具有平滑作用, 可有效地消除尺度远小于高斯分布因 子 ? 的噪声信号。 ? 高斯函数在空域和频域内都具有平滑作用。 ? 该滤波器采用拉普拉斯算子 ? 2 可以减少计算量。 马尔算子用到的卷积模板一般比较大 (典型半径为 8-32 个像素) , 不过这些模板可以分 解为一维卷积来快速计算。常用的 LoG 算子是 5 ? 5 模板,如图(F) 。与其他边缘检测算子 一样,LoG 算子也是先对边缘做出假设,然后再这个假设下寻找边缘像素。但 LoG 算子对边 缘的假设条件最少,因此它的应用范围更广。另外,其他边缘检测算子检测得到的边缘时不 连续的,不规则的,还需要连接这些边缘,而 LoG 算子的结果没有这个缺点。对于 LoG 算子 边缘检测的结果可以通过高斯函数标准偏差 ? 来进行调整。即 ? 值越大,噪声滤波效果越 好,但同时也丢失了重要的边缘信息,影响了边缘检测的性能; ? 值越小,又有可能平滑 不完全而留有太多的噪声。因此,在不知道物体尺度和位置的情况下,很难准确确定滤波器 的 ? 值。一般来说,使用大 ? 值的滤波器产生鲁棒边缘,小的 ? 值的滤波器产生精确定位 的边缘,两者结合,能够检测出图像的最佳边缘。数学上以证明,马尔算子是按零交叉检测 阶跃状边缘的最佳算子。 但在实际图像中要注意到, 高斯滤波的零交叉点不一定全部是边缘 点,还需要进一步对其线 24 8 -4 -4 0 8 0 -4 -2 -4 -4 -4 -2 图(F)LoG 算子是 5 ? 5 模板 Kirsch(凯西)边缘检测算子 Kirsch 边缘检测算子由 8 个卷积核组成,图像中的每个像素点都用这 8 个核进行卷积 运算,即须求出 f ( x, y ) 8 个方向的平均差分。像素与不同卷积核卷积运算的结果给出了相 应特定边缘方向的响应。 从所有方向相应中找出一个最大值, 就给出了经过该点的边缘幅度 图像的输出值。 使输出最大的卷积核的序号既是边缘方向的编码。 该算子还可以较好地抑制 边缘检测的噪声。假设原始图像的 3 ? 3 子图像如图(G)所示。 a3 a4 a2 (i , j ) a1 a0 a5 a6 a7 第5页 图(G) 3 ? 3 子图像示意图 则边缘的梯度大小为 G (i, j ) ? max ? ?1, max( 5sk ? 4tk : k ? 0,1,...7) ? ? 式中 (13) sk ? ak ? ak ?1 ? ak ?2 tk ? ak ?3 ? ak ? 4 ? ... ? ak ? 7 (14) 式(14)中的下标超过 7 就用 8 去除并取余数。k=0,1,...,7 实际上就是使用了 8 个模板, 8 个方向的模板如图(H)所示 5 3 -3 5 0 -3 5 -3 3 3 -3 -3 5 0 -3 5 5 -3 -3 -3 -3 3 0 -3 5 5 5 -3 -3 -3 -3 0 5 -3 5 5 -3 -3 5 -3 0 5 -3 3 5 -3 5 5 -3 0 5 -3 3 3 第6页 5 5 5 -3 0 5 -3 3 3 5 5 -3 5 0 -3 3 3 -3 图(H)Kirsch 算子的 8 方向模板 从上面的 8 个方向模板可以看出,每两个卷积核(模板)之间的夹角为 45 度。 对于图像 T,模块为 Wk (k=1,2,...,8) ,则边缘强度在点(x,y)处为: E ( x, y ) ? max ?Wk ? T ? {k=1,2,...,8} (15) 其中,以 ? 表示点乘运算。如果取最大值的模作为边缘强度,同时用考虑最大值符号的方法 来确定相对应的边缘方向, 则考虑到各模板的对称性, 只需要前四个模板即可。 对于 Kirsch 算子也有几种不同的形式,如图(I)所示 8 方向的 5 ? 5 模板就是一种比较常用的方式。 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 -1 -1 -1 -1 1 0 -1 -1 -1 1 1 0 -1 -1 1 1 1 0 -1 1 1 1 1 0 1 1 0 -1 -1 1 1 0 -1 -1 1 1 0 -1 -1 1 1 0 -1 -1 1 1 0 -1 -1 1 1 1 1 0 1 1 1 0 -1 1 1 0 -1 -1 1 0 -1 -1 -1 0 -1 -1 -1 -1 图(I)8 方向 5 ? 5 Kirsch 算子的前 4 个 如果对图像进行二值化分析, 可以发现图像中非边缘点往往低于阈值, 而大多数边缘点 则往往高于该阈值。Kirsch 方向算子正是利用了这种现象,在进行边缘的检测时,首先用 一个中偏低的灰度阈值对梯度图像进行二值化, 从而检测出物体与背景, 物体与背景被处于 阈值之上的边界分开。随着阈值的不断提高,也促使物体和背景的一同增长,当达到接触而 又不合并的临界状态时,就可以用接触点来定义边缘。 确定了处于边缘的像素点之后, 理想的情形是这些边缘点都是连续的, 把各个点连接起 来就构成了区域的边缘,各个区域也就分割开来了。但是,在很多情况下,边缘点或边缘线 端之间会有间断。所以通常情况下,如果边缘点很稀疏,那么就要用分段线性或高阶样条曲 线来拟合这些点,从而形成一条可以用来分割区域的适用边界。总之,虽然 Kirsch 方向算 第7页 子的计算开销比较大, 但却可以产生出最大的梯度边界。 与之类似的另一种比较常用的方向 算子是由 12 个 5 ? 5 卷积核组成的 Nevitia 方向算子, 其每两个卷积核之间的夹角为 30 度, 该算子充分利用了各位置的权值来调整边缘的方向。 Canny 算子 前面介绍的边缘检测算子都是局域窗口梯度算子,由于它们对噪声敏感,所以在处理实 际图像时效果并不是十分理想。根据边缘检测的有效性和定位的可靠性,Canny 研究了最优 边缘检测器所需的特性,给出了评价边缘检测性能优劣的三个指标: ① 高的准确性, 在检测的结果里应尽量多的包含真正的边缘, 而尽量少的包含假边缘。 ② 高的精确度,检测到的边缘应该在真正的边界上。 ③ 单像素宽,k8娱乐手机版客户端要有很高的选择性,对每个边缘有唯一的响应。 针对这三个指标,Canny 提出了用于边缘检测的一阶微分滤波器 h ( x ) 的三个最优化标 准则,即最大信噪比准则、最优过零点定位准则和单边缘响应准则。具体如下: (a)信噪比准则 SNR ? ? w ?w G (? x)h( x )dx ? ? w (16) ?w h ( x)dx 2 式中, G ( x ) 为边缘函数; h( x) 为带宽为 W 的低通滤波器的脉冲响应; ? 是高斯噪声的均 方差。 (b)定位精确度准则 L 为边缘的定位精度,定义如下: L? ? w ?w G (? x )h ( x)dx ? ? w (17) ?w h ( x )dx 2 式中, G ( x) 和 h ( x ) 为 G ( x ) 和 h( x) 的一阶导数;L 是对边缘定位精确程度的度量,L 越 大定位精度越高。 (c)单边缘响应准则 要保证对但边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离应该满 足: Dzca ( f ) ? ? ? ? ? ?? w ?w h ( x)dx h ( x)dx 2 (18) 式中, h ( x ) 是 h( x) 的二阶导数; f 是进行边缘检测后的图像。 这三个准则是对前述边缘检测指标的定量描述。抑制噪声和边缘精确定位是无法同时 得到满足的,即边缘检测算法通过图像平滑算子去除噪声,势必增加边缘定位的不确定性; 反之,若提高边缘检测算子对边缘的敏感性,同时也提高了对噪声的敏感性。因此,在实际 应用中只能寄希望于再抑制噪声和提高边缘定位精度之间实现一个合理的折衷。 第8页 值得庆幸的是, 有一个线性算子可以在抵抗噪声与边缘检测之间获得一个最佳的折衷, 这个算子就是高斯函数的一阶导数。 高斯函数与原图的卷积达到了抵抗噪声的作用, 而求导 数,则是检测景物边缘的手段。 对于阶跃形的边缘,Canny 推导出的最优边缘检测器的形状与高斯函数的一阶导数类 似,因此 Canny 边缘检测器就是高斯函数的一阶导数构成的。我们知道,高斯函数是圆对 称的,因此,Canny 算子在边缘方向上是对称的,在垂直于边缘的方向上是反对称的。这就 意味着该算子对最急剧变化方向上的边缘特别敏感,但在沿边缘方向上是不敏感的。 设二维高斯函数为 G ( x, y ) ? 1 x2 ? y 2 exp( ? ) 2?? 2 2? 2 (19) 其中, ? 是高斯函数的分布参数,可用以控制对图像的平滑程度。 最优阶跃边缘检测算子是以卷积 ?G * f ( x, y ) 为基础的,边缘强度为 ?G * f ( x, y ) , 而边缘方向为 ? ? ?G * f ( x , y ) 。 ?G * f ( x , y ) 从高斯函数的定义可知,该函数是无限拖尾的,在实际应用中,一般情况下是将原始 模板截断到有限尺寸 N。实验表明,当 N ? b 2? ? 1 时,能够获得较好的边缘检测结果。 下面给出 Canny 算子的具体实现。 利用高斯函数的可分性,将 ?G 的两个滤波卷积模板分解为两个一维的行列滤波器: ?G ( x, y ) x2 y2 ? kx exp(? 2 ) exp( ? 2 ) ? h1 ( x ) h2 ( y ) ?x 2? 2? (20) ?G ( x, y ) y2 x2 ? ky exp(? 2 ) exp(? 2 ) ? h1 ( y )h2 ( x) ?y 2? 2? 其中 (21) h1 ( x ) ? k x exp(? x2 y2 ), h ( y ) ? k y exp( ? ), 1 2? 2 2? 2 h2 ( x ) ? k exp( ? 可见, x2 y2 ), h ( y ) ? k exp( ? ), 2 2? 2 2? 2 h1 ( x ) ? xh2 ( x), h1 ( y ) ? yh2 ( y ) ,k 为常数。 然后把这两个模板分别与 f ( x, y ) 进行卷积,得到 Ex ? ?G ( x, y ) ?G ( x, y ) * f ; Ey ? *f ?x ?y (22) 令 A(i, j ) ? 2 Ex2 ? E y , a (i, j ) ? arctan E y (i, j ) E x (i , j ) (23) 则 A(i, j ) 反映边缘强度, a(i, j ) 为垂直于边缘的方向。 第9页 根据 Canny 的定义,中心边缘点为算子 Gn 与图像 f ( x, y ) 的卷积在边缘梯度方向上的 区域中的最大值。 这样, 就可以在每一点的梯度方向上判断此点强度是否为其领域的最大值 来确定该点是否为边缘点。当一个像素满足以下三个条件时,则被认为是图像的边缘点。 1)该点的边缘强度大于沿该点梯度方向的两个相邻像素点的边缘强度; 2)与该点梯度方向上相邻两点方向差小于 45°; 3)以该点为中心的 3 ? 3 领域中的边缘强度极大值小于某个阈值。 此外,如果 1)和 2)同时被满足,那么在梯度方向上的相邻像素就从候选边缘点中取消, 条件 3)相当于区域梯度最大值组成的阈值图像与边缘点进行匹配,这一过程消除了许多虚 假的边缘点。 Canny 边缘检测算子步骤如下: Step1:用高斯滤波器对图像进行滤波消噪; Step2:用一阶偏导的有限差分来计算梯度的幅值和方向; Step3:对梯度幅值进行非极大值抑制; Step4:用双阈值算法检测和连接边缘。 各种经典边缘检测算子特点总结 Roberts 算子是 2 ? 2 算子,对边缘定位比较准,所以分割结果的边界宽度不像后面的 Prewitt 分割那样宽。在图像噪声较少的情况下,分割的结果还是相当不错的。 Sobel 算子、Prewitt 算子、Krisch 算子都是 3×3 的算子,它们对灰度渐变和噪声较多 的图像处理得较好。Prewitt 算子并不是各向同性的,边缘并不是完全连通的,有一定程度 的断开。 Laplacian 算子是二阶微分算子,对噪声比较敏感,所以分割结果中在一些像素上出现 了散碎的边缘像素点。可以证明,它具有各向同性,即与坐标轴方向无关,坐标轴旋转后梯 度结果不变。它对边缘的定位还是比较准的。 第 10 页

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!