基于改进Sobel算子和遗传算法的图像边缘检测
张金玉,陈彦,黄先祥
(西安高新技术研究所,陕西西安)
摘要:在计算机视觉和图像处理里,图像边缘检测是一个经典的问题。边缘检测的关键是阈值的选择;阈值的选择直接,决定了边缘检测的结果。如何自动确定最优阈值是边缘检测的难点之一。在本文中,Sobel边缘检测算子及其改进算法最先讨论涉及到最优阈值。然后基于遗传算法和改进
Sobel算子,一种对图像处理的新兴的自动阈值算法被提出。最后,通过两种算法边缘检测的两个真正的图像试验被实施。对比实验结果表明,自动阈值的新算法是非常有效的。结果也比经典的Otsu方法更好。
关键字—边缘检测,Sobel算子,遗传算法,类平方误差,图像处理
介绍
一个计算机图像分析和处理非常重要的目标是产生某些适合人们或者机器来观察和识别的特定图像。图像边缘是一张图片最基本的特征。所谓的图像边缘指的是图像中强度变化的最突出的部分。在边缘之间存在主要目标和战略目标,目标和背景,区域和区域(包括不同的颜色),是图像分析和处理的重要标准,如图像分割、纹理、形状特征。在数字图像处理与模式识别中,边缘检测都是最基本的任务之一。在图像处理中,边缘提取和检测扮演一个重要的角色。这算法的优点直接影响到系统性能。
如何快速、准确地提取图像边缘信息一直是一个热门的研究课题。我们的前辈也研究出许多的边缘检测算法。Sobel算子是其中的一个经典算法[1]。经典的边缘检测算法的关键就是阈值的选择。阈值直接地决定了边缘检测的成功。如何可以自动获得最佳边缘的阈值已经是边缘检测的难点之一。如果选定的阈值过低,不仅会产生错误的边缘,而且边缘非常厚。这些需要再次重精确和重处理边缘位置的边缘通常都不足够精确。如果阈值太高了,许多边缘可能不被检测出或检测到的边界也是太分段了。目前,许多人使用的最大熵方法[2],Otsu阈值分割方法[3],[4]来取得好的结果。在这些方法中,仍有一些缺点如大计算复杂度和较低的计算效率。在本文中,基于遗传算法和改进Sobel算子之间的最大方差法提出了自动确定阈值。实验结果证明阈值选择是合理、有效的。
本文的结构如下:在第2节,经典的Sobel边缘检测算子及其改进Sobel边缘检测算子进行了讨论。在第3节,介绍了基本Otsu算法。在第4节,一个新的基于遗传算法和改进Sobel算子的算法被提出了。在第5节,两个实验检查。最后,结论在第6节被提出。
Sobel边缘检测算子
经典Sobel边缘检测算子
Sobel算子广泛应用于图像处理,特别是边缘检测算法。从技术上讲,它是一个离散的分化算子,计算一个图像灰度函数梯度的近似值。在图像上的每一个点,Sobel算子的结果既是与梯度向量相应,也与矢量基准一致。在计算3x3的邻里中心x,y方向,Sobel算子是f(x,y)的偏导数。为了抑制噪声,有一定的重量相对地增加了中心点,数字梯度近似方程描述如下:
一般来说,其梯度的大小:
也可以采用类似于:
它的卷积模板算子如下:
如果我们用Sobel算子来检测图像M的边缘,然后我们可以使用水平模板和垂直模板来盘旋图像,在没有考虑边界条件下,可得到两个同样的尺寸的梯度矩阵M1和M2作为原始图像。然后,总梯度值G可通过增加两个倾斜矩阵得到。最后,我们可以通过阈值方法得到边缘。
改进Sobel边缘检测算子
Sobel算子是基于使用一个小、可分离、整型重要的过滤器在水平和垂直方向来盘旋图像。就计算能力而言,它也相对比较廉价。另一方面,它产生的梯度近似相对较粗糙,特别是对于图像的高频率变化。
正如我们所知道的,因为只有两个模板方向被使用,它只能检测到的水平和垂直方向的边缘。因此,该算法边缘检测对于复杂的纹理图像无效。为了补偿Sobel的缺点:去制造描述图像边缘点更为准确的算子,降低噪音方面的检测,四个方向上的尺寸55的模板、、、已经被使用。每个模板的重量位置是由位置中心的距离以及位置的方向所决定。等距点有相同的重量。这些模板如下:
在该算法中,我们选择了模板梯度值最高输出作为边缘像素强度梯度。
OTSU算法
有许多阈值选择方法。根据应用的范围,阈值的方法也可以分为
整体阈值分割方法
2)局部阈值和
3)动态阈值分割方法
在本文中,遗传边缘检测是属于整体Otsu阈值分割方法。
假设是我们想要分割的客观图像,它的灰度范围是。通过阈值t图像像素将被分为两类:,。和分别代表目标和背景。这类平方误差在C0和C1之间如下:
这里t是阈值,是图像灰度值小于阈值t的像素的数量。是图像灰度值大于阈值t的像素的数量。是图像灰度值小于阈值t的像素平均灰度值。是图像灰度值大于阈值t的像素平均灰度值。使得最大值的t是最佳分割阈值。这里最佳阈值要求需要遍历所有像素灰度值在一定范围内,计算方差,最后获得最佳的方差。很明显,这计算成本很大,计算效率也很低。确定最优阈值基本上是一个优化问题。遗传算法的采用大大提高了计算效率。
IV.算法细节
新算法主要包括三个步骤如下:
1)通过使用以前的四个方向模板来逐点计算图像来得到梯度图像。
2)通过基于遗传算法的Otsu方法来解决梯度图像的最佳分割阈值。该算法包含6个步骤如下:
(1)染色体编码
编码染色体塞入一个八位二进制字符串来表示一个阈值。
(2)人口初始化
随机产生40染色体作为初始人口。
(3)适应度函数的设计
指的是最大类间方差作为适应度函数
(4)交叉算子
使用单点交叉方法、交叉概率为0.9。
(5)变异算子
实验结果表明,当遗传的变异概率是非常小时,解决方案的稳定性是好的。但是一旦解决方案落在一个局部极值内,它就很难出来,很有可能导致不成熟的收敛。如果变异概率取得了很大,遗传算法将作为一种随机搜索。为了提高算法性能,本文提出了一种自适应变异率被采用如下:
在公式,是在当前人口里适度函数的最大值。是平均适度值。表明已突变的个体的适应度函数。
(6)算法终止和后处理
迭代计算50次后获得最高的个人适度和解码得到最佳阈值。
3)根据阈值,如果图像的灰度值大于或等于阈值,你可以确定该点为最初始的边缘点,那一点方向就是边界点的方向,否则就是一个无边点。
V.结果
为了测试该算法的有效性,我们在MATLAB中使用默认算法和在本文中提出的新遗传算法来比较边缘检测的图像结果。图1、图2是两个实验的实验结果。原图像(a1)大小是一副142142像素的米图。原始图像(a2)是一张338350像素的带噪音的细胞图像。图b1、c1、b2、c2,分别是通过使用默认的MATLAB的算法和新算法而得到的两幅图的检测结果。
(a1)米图
(b1)Sobel检测(c1)新检测
图1米图的图像边缘检测结果
比较图像(a1)边缘检测的两个结果b1、c1,我们不难发现,已使用的新算法改进了检测模板,遗传算法得到了更好的结果比传统Sobel算子。新算法具有更强的边缘搜索能力及更完整的边缘。图像(a2)带噪声测试表明,新算法具有抗干扰能力,可以克服Sobel算子对噪音非常敏感的缺点。
表1是二算法运行时间的实验结果。平均时间是一个十倍338个350图像的检测平均值。因为新算法结合了遗传算法和传统二维Otsu方法的优势,新算法的计算成本已经提高了。两种算法的运行时间有了明显的差异。从数据表1中的1.5s和0.92s看,这很容易地发现。效率增加了38.7%。
(a2)细胞图像
(b2)Sobel检测(c2)新检测
图2细胞图边缘检测结果
表1
算法运行时间
方法 平均时间 Otsu方法 1.5s 新方法 0.92s VI.结论
综上所述,本文使用Sobel算子和改进遗传算法来优化梯度图像的分割阈值,提出了一种新的自动优化阈值算法。新算法克服了许多经典Sobel算子的缺陷,如过度分割和灵敏度。对比实验结果
表明,新算法具有更强的计算速度和抗噪声能力。然而,我们也许会发现检测到的边界不够好,一个更好的改善算子将在未来被研究。
参考文献
[1]M.WenandC.Zhong,“ApplicationofSobelAlgorithminEdgeDetectionofImages,”ChinaHigh-techEnterprise,pp.57-62,Jun.2008,(inChinese).
[2]J.Li,X.K.Tang,andY.J.Jiang,“ComparingStudyofSomeEdgeDetectionAlgorithms,”InformationTechnology,vol.38,no.9,pp.106-108.Sep.2007,(inChinese).
[3]X.L.CiandG.G.Chen,“AnalysisandResearchofImageEdgeDetectionMethods,”JournalofInfrared,pp.20-23,Jul.2008,(inChinese).
[4]N.A.Otsu,“Athresholdselectionmethodfromgray-levelhistograms,”IEEETransactionsonSystems,ManandCybernetics,vol.9,no.1.pp.62-66,Jan.1979.
|
|