基于局部三进制模式的边缘检测方法

2015-03-02 12:31李青
软件导刊 2015年1期
关键词:边缘检测图像处理

李青

摘要:边缘检测是指检测图像中灰度突变的区域边界,其结果直接影响图像后续处理,有效和准确地提取图像的边缘是边缘检测的关键。利用局部三值模式对图像结构特征的表征优势,提出一种新的图像边缘检测算法,能够准确检测出边缘,和其它边缘检测方法比较,具有边缘检出率高和抗噪性能好的优势。

关键词:边缘检测;局部模式;图像处理

DOIDOI:10.11907/rjdk.143997

中图分类号:TP317.4

文献标识码:A 文章编号文章编号:16727800(2015)001012903

0 引言

图像边缘是图像的重要特征之一,在视觉中具有重要作用,研究表明人眼对物体的感知在很大程度上依赖于边缘,人眼往往通过物体的边缘就能够识别物体[1]。图像边缘是连接图像中灰度发生突变的像素点的集合,边缘检测就是要将图像中灰度剧烈变化的部位检测出来,即根据引起图像灰度变化的物理过程来描述图像灰度变化的过程[2]。边缘检测为人们描述、识别目标以及理解图像提供了重要的特征信息。

传统的边缘检测算子有Robert算子、Sobel算子、Prewitt算子和Laplacian算子等。这些方法都是在图像上使用微分算子,找到局部最大值或者过零点值对应的点,即认为这些点是边缘点[3]。这些算子对噪声比较敏感,检测结果经常不能令人满意。本文利用局部三值模式对图像结构特征的表征优势,提出一种新的边缘检测算法,能准确检测出边缘,和其它边缘检测方法相比,边缘检出率高、抗噪性能优。

1 局部模式表示

1.1 局部二值模式(Local Binary Patterns, LBP)

Ojala[4]提出了利用LBP从图像结构和统计分析角度分析图像。其作为图像描述算子已经成功运用在纹理分类、图像分割、人脸识别等领域[5]。LBP计算公式为:

LBPp,r=∑p-1p=0s(gp-gc)2p,s(x)=1,x≥00,x<0 (1)

其中,gp是邻域像素点的灰度值,gc是中心像素点的灰度值,p是邻域像素点的个数,r是邻域半径。图1给出了一个LBP模式的计算过程实例。在3×3的窗口内,以窗口中心像素灰度值为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素点的灰度值大于或等于中心像素点的灰度值,则该像素点的位置标记为1,否则为0。将3×3邻域内8个点级联起来可产生一个8位的二进制数,将二进制数转化为十进制数就得到该窗口的LBP值。

图1 局部二值模式的计算(p=8,r=1)

为消除图像旋转带来的影响,实现旋转不变性,Ojala提出了旋转不变局部二值模式(Rotation Invariant Local Binary Patterns,RILBP)。RILBP的计算公式为:

RILBPrip,r=min{Ror(LBPp,r)}(2)

其中,Ror{x}表示将p位的二进制数x按位向左平移,并将最高位移到最低位。RILBP很好地解决了图像的旋转问题,但是模式集的个数随着p的增加会急剧上升,降低了算法效率。为了降低模式集的个数,Ojala提出了均匀局部二值模式(Uniform Local Binary Patterns,ULBP),ULBP计算公式为:

ULBPriu2p,r=∑p-1p=0s(gp-gc)ifU(LBPp,r)≤2p+1 otherwise (3)

U(LBPp,r)=|s(gp-1-gc)-s(g0-gc)|+∑p-1p=1|s(gp-gc)-s(gp-1-gc)|

从式(3)可以看出,当r=1,p=8时,LBP的模式集个数降至10,模式集个数大大减少。

1.2 局部三值模式(Local Ternary Patterns,LTP)

LBP通过比较图像局部窗口内中心像素点和邻域像素点之间的灰度值差异性描述图像局部特征。对于图像灰度变化不大或中心点和邻域点灰度值相近的两个窗口,可能得到的LBP模式不同。为了解决LBP算法这一不足,Tan[6]提出了LTP方法。LTP算法考虑的邻域结构与LBP算法类似,计算公式如下:

LTPp,r=∑p-1i=0s(gi-gc)3p,s(x)=1ifx>T0if-T≤x≤T-1ifx<-T(4)

其中,T为阈值。图2给出了一个LTP模式计算的过程实例。在3×3的窗口内,将相邻的8个像素的灰度值与中心像素灰度值进行比较,若邻域像素点灰度值减去中心像素点灰度值的差大于阈值T,则该邻域像素点的位置标记为1;若差值小于阈值-T,则该像素点的位置标记为-1;若差值在阈值-T和T之间,则邻域该像素点的位置标记为0。可以看出,在邻域采样点个数固定的情况下,LTP模式种类数目远多于LBP。为了简化模型,将基本的局部三值模式分成上模式(upper pattern)和下模式(lower pattern)。将原编码中除1以外的标记为0后得到的编码,定义为上模式。将原编码中除-1以外的标记为0后用1取代原来的-1,最后得到的编码定义为下模式。

图2 局部三值模式的计算(p=8,r=1)

当邻域像素点的个数p值较大时,LTP会生成过多的模式种类数目,虽然描述的图像局部结构极为丰富,但是如此多的模式数量增加了后续处理计算的难度。将上模式与下模式串联作为描述该图像局部窗口的特征,此时,LTP算法只有2p+1种模式。LTP算法作为传统LBP算法的一种扩展,很好地解决了传统LBP算法对图像中较小灰度值变化敏感的问题,对图像局部特征的描述更具有鲁棒性。

2 局部三值模式边缘检测方法由于图像边缘部分灰度值变动较大,超过一定范围认为这是一个边缘,LTP算法可以通过阈值T将图像平滑部分和灰度变化剧烈部分区分开来,适用于边缘检测。利用LTP进行边缘检测步骤为:步骤1:计算原图像各方向的灰度差异值。对原图像中的每一个像素点gc,计算其与距离该像素点半径为r的各方向邻域像素点gp的灰度差异值。步骤2:计算和原图像对应的最大灰度差异图像。对原图像中每个像素点,对比步骤1中计算出的每个方向的灰度差异值,取最大值作为最大灰度差异图像中像素点的灰度值。计算最大灰度差异图像的均值,作为LTP算法中的阈值T。

步骤3:运用LTP算法对原图像进行处理,得到原图像每个像素点的LTP上模式和下模式。

步骤4:利用步骤3中每个像素点的上模式和下模式,计算与其对应的旋转不变均匀模式(将不均匀模式也设置为0)。

步骤5:将步骤4中上模式与下模式的旋转不变均匀模式进行与运算,得到的结果作为对应图像中像素点的值,即为边缘检测结果图像。

3 实验结果及分析

为了验证本文算法的可行性与有效性,在Matlab 2008a平台上进行实验,与MarrHildreth和Prewitt边缘检测方法进行对比。MarrHildreth边缘检测算子先通过LoG算子进行滤波,再对图像的过零点进行检测,得到最后的边缘图像。Prewitt边缘检测算子是一种一阶微分算子,利用像素点上下和左右邻域点的灰度差,找出极值点,视为边缘点。为分析LTP方法检测边缘的鲁棒性和有效性,实验结果未作边缘细化处理和滤波处理。

不同边缘检测方法在Lena图上的实验结果如图3所示,MarrHildreth方法的阈值设为3.5。通过图3可以看出,MarrHildreth对细节的边缘提取更多,如图中头发处的边缘,但是也出现了更多的杂点和伪边缘,而且有边缘丢失的情况。Prewitt算子对背景的抑制效果最好,但是丢失的边缘最多。LTP检测方法在背景抑制、边缘检测完整性与精确性上效果最佳,不仅检测出了更多的边缘,如图3中左边两条竖直边缘,而且对背景的抑制效果也比MarrHildreth方法要好,如帽子中间不是边缘的部分几乎没有杂点出现。

图3 不同方法在Lena图上的实验结果

本文使用最大灰度差异图像的均值作为阈值T,取得了较好的效果,但是对于图像不同部分选取同一阈值适用性不高,因为不同的边缘,灰度差异不尽相同。为此,需要分析不同阈值对实验结果的影响。不同阈值参数在Lena图上的实验结果如图4所示。据图4可知,T值的选取对边缘影响较大,T值越大,细节处的边缘丢失越多;T值越小,细节处的边缘越完整,但是也会引入更多的噪声杂点,如何选取合适的阈值需要进一步研究。

图4 不同阈值参数在Lena图上的实验结果

4 结语

本文提出一种新的边缘检测算法,利用局部三值模式进行边缘检测,可以很好地将图像平滑部分和边缘部分区分开来,达到边缘检测的目的。实验结果表明本文方法较

常规边缘检测方法有一定的优势,但在参数选取上需要进一步改进,如何根据图像自适应确定阈值参数,是下一步研究的方向。

猜你喜欢
边缘检测图像处理
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
Bayesian-MCMC算法在计算机图像处理中的实践
改进压缩感知算法的图像处理仿真研究
基于图像处理的定位器坡度计算
Photo Shop通道在图像处理中的应用