基于邻域离散度的图像边缘检测方法与流程

文档序号:13708100阅读:187来源:国知局
技术领域本发明属于图像边缘检测技术领域,实现无阈值、各向同性的且保障图像中物体轮廓的连续性的边缘检测,具体涉及一种基于邻域离散度的图像边缘检测方法。

背景技术:
图像分割目的在于将图像中的物体与背景区域分开,分割技术可以总结为三个步骤,分别是滤波、增强、边缘检测。目前已经存在几种成熟的常用算子如Sobel、Prewitt、Roberts、Laplace、Canny等,这些算子均属于基于邻域的方法。其中,Sobel、Prewitt、Roberts算子皆属于一阶线性离散差分算子,前两个在检测图像边缘时均需要分别计算X方向与Y方向的亮度差分值,且Prewitt在水平及垂直方向检测边缘精度最高,Roberts则需要计算对角线方向的亮度差分值。Laplace算子属于二阶差分算子,该算子通过正峰值与负峰值之间的零点检测可能的边缘。Laplace算子解决了Sobel、Prewitt算子等在检测边缘时的非各向同性问题,但是会引起双边效用且需要多次遍历系数寻找转折点,因此该算子很少直接应用与边缘检测。非线性算子Canny目前公认为最优的检测算子之一,其基于高斯核与上述几个检测算子相比较其表现良好但是计算复杂且耗时。上述几种算子在检测边缘时均需要提供合适的阈值才能够表现出良好的检测效果。许多参数选择算法均依赖与设置的初始值,初始值直接决定其后期的处理效果。在许多数字图像中,我们很难提供一个统一的阈值来处理所有的图像,而在边缘检测时不合适的阈值往往会引起边缘的不连续性及缺失,由于数字图像的复杂性,阈值问题一直都是个难以解决的问题。至于基于模糊推理的边缘检测算法,该算法考虑了各种可能存在的边缘结构并对每一种可能进行处理,使得该算法推理过程过于复杂且耗时。

技术实现要素:
本发明的目的是提供一种基于邻域离散度的图像边缘检测方法,解决了现有技术中Sobel、Canny、Roberts及Prewitt算子在计算时的非各向同性及双边效应问题。本发明所采用的技术方案是,一种基于邻域离散度的图像边缘检测方法,按照以下步骤实施:步骤1)将原始的彩色图像转换为单通道的八位灰度图像,该八位灰度图像的灰度级在0-255之间;步骤2)求该八位灰度图像的离散度系数矩阵M,该离散度系数矩阵M的维度大小与原始图像的大小一致,设置针对灰度图像的采样模板,zi为采样模板内各个像点的灰度值,使用该采样模板从图像的第一行第一列开始逐列逐行移动,分别计算每一个像点的平均偏差并将其保存在离散度系数矩阵M中的对应位置,计算方式参考式(1)和式(2):u=1nΣi=1nzi,---(1)]]>theta=round(1nΣi=1n|zi-u|),---(2)]]>在式(1)、式(2)中,n为采样模板中的像点个数且1≤i≤n;u为模板内的灰度平均值,round函数是进行四舍五入的取整运算,theta为采样模板的平均偏差;步骤3)对离散度系数矩阵M执行水平方向细化操作,进行水平方向细化操作时,分别从行的两头开始向中间聚拢只保留局部最大值,细化结果保存在矩阵Mh中,该矩阵Mh的维度与离散度系数矩阵M一致;对离散度系数矩阵M进行行扫描,遇到行内局部最大值时则令该点相对应在矩阵Mh的点值为1,其他值均置0;步骤4)对离散度系数矩阵M执行垂直方向细化操作,进行垂直方向细化操作时,分别从列的两头开始向中间聚拢只保留局部最大值,细化结果保存在矩阵Mv中,该矩阵Mv的维度与离散度系数矩阵M一致;对离散度系数矩阵M进行列扫描,遇到列内局部最大值时则令该点相对应在矩阵Mv的点值为1,其他值均置0;步骤5)合并矩阵Mh与矩阵Mv,将该两个矩阵中所有为1的点合并,得到粗略的细化边缘矩阵O;步骤6)将细化边缘矩阵O依照方向梯度对图像轮廓进行精确处理以及冗余信息滤除,计算方向梯度时,以该像点为中心采样并且采用新的采样模板,zi为采样模板内各个像点的灰度值,i设置为1-9,方向梯度包括水平方向梯度、45度方向梯度、垂直方向梯度及135度方向梯度,依次计算四个方向梯度的梯度值g1、g2、g3、g4,参照下式(3)-式(6):g1=12(|z4-z1|+|z7-z4|+|z5-z2|+|z8-z5|+|z6-z3|+|z9-z6|),---(3)]]>g2=|z6-z8|+|z3-z7|+|z2-z4|,(4)g3=12(|z2-z1|+|z3-z2|+|z5-z4|+|z6-z5|+|z8-z7|+|z9-z8|),---(5)]]>g4=|z2-z6|+|z1-z9|+|z4-z8|,(6)该四个方向梯度中数值最大的一个梯度值能够认为指示了边缘的走向趋势,再根据该走向趋势的方向滤除多余的信息或修补断点,获取得到轮廓矩阵,最终通过轮廓矩阵转换得到二值边缘图像。本发明的有益效果是,包括以下几个方面:1)该方法采用计算平均偏差的方式代替梯度卷积计算,解决了梯度卷积计算时需要分别从X方向与Y方向卷积计算以检测X方向与Y方向的边缘。2)该方法与Laplace算子一样具有各向同性的特点,但是并不同Laplace算子一样会引起双边效应;Laplace算子在边缘检测时会产生两条边缘,一条亮的,另一条是暗的。3)该方法检测边缘时并不需要设置初始阈值,避免了由阈值设置不恰当而引起的图像轮廓中断或图像边缘缺失。4)该方法细化边缘时是在保障物体图像轮廓的连续性条件下完成的,以确保图像轮廓逻辑上的连续性且消除冗余信息以保证轮廓的精确性。附图说明图1是本发明方法中针对灰度图像的2×2采样模板示意图;图2是求取梯度时的3×3采样模板示意图;图3是原始图像的灰度图像(原图为200*200);图4是针对图3的(MatlabCanny算子默认阈值)的结果图;图5是针对图3的(MatlabSobel算子默认阈值)的结果图;图6是针对图3的(MatlabCanny算子阈值0.1,0.5)的结果图;图7是采用本发明方法对图3的处理结果图;图8是针对图7的图像轮廓匹配的结果图。具体实施方式下面结合附图和具体实施方式对本发明进行详细说明。本发明基于邻域离散度的图像边缘检测方法,按照以下步骤实施:步骤1)将原始的彩色图像转换为单通道的八位灰度图像,该八位灰度图像的灰度级在0-255之间;步骤2)求该八位灰度图像的离散度系数矩阵M,该离散度系数矩阵M的维度大小与原始图像的大小一致,设置为针对灰度图像2×2的采样模板,如图1所示,zi为采样模板内各个像点的灰度值,使用该采样模板从图像的第一行第一列开始逐列逐行移动,分别计算每一个像点的平均偏差并将其保存在离散度系数矩阵M中的对应位置,计算方式参考式(1)和式(2),当前目标点为图1采样模板中的z4处:u=1nΣi=1nzi,---(1)]]>theta=round(1nΣi=1n|zi-u|),---(2)]]>在式(1)、式(2)中,n为采样模板中的像点个数且1≤i≤n,在检测边缘时采用2×2模板,n设置为4;u为模板内的灰度平均值,round函数是进行四舍五入的取整运算,theta为采样模板的平均偏差。文中所采用的模板均是针对图像灰度值进行计算的,模板内所表示的符号均指所采样的图像灰度值。步骤3)对离散度系数矩阵M执行水平方向细化操作,目的是细化垂直边缘,进行水平方向细化操作时,分别从行的两头开始向中间聚拢只保留局部最大值,细化结果保存在矩阵Mh中,该矩阵Mh的维度与离散度系数矩阵M一致;对离散度系数矩阵M进行行扫描,遇到行内局部最大值时则令该点相对应在矩阵Mh的点值为1,其他值均置0;步骤4)对离散度系数矩阵M执行垂直方向细化操作,进行垂直方向细化操作时,分别从列的两头开始向中间聚拢只保留局部最大值,细化结果保存在矩阵Mv中,该矩阵Mv的维度与离散度系数矩阵M一致;对离散度系数矩阵M进行列扫描,遇到列内局部最大值时则令该点相对应在矩阵Mv的点值为1,其他值均置0;步骤5)合并矩阵Mh与矩阵Mv,将该两个矩阵中所有为1的点合并,得到粗略的细化边缘矩阵O;步骤6)细化边缘矩阵O是离散度系数矩阵M基本上剔除伪边缘信息后所得到的集合,但并不能保证细化边缘矩阵O的连续性与精确度;因此,还需要依照方向梯度对图像轮廓进行精确处理以及冗余信息滤除,以确保图像轮廓的连续性及精细度;计算方向梯度时,以该像点为中心采样并且采用新的3×3采样模板,如图2所示,zi为采样模板内各个像点的灰度值,i设置为1-9,方向梯度包括水平方向梯度、45度方向梯度、垂直方向梯度及135度方向梯度,依次计算四个方向梯度的梯度值g1、g2、g3、g4,参照下式(3)-式(6):g1=12(|z4-z1|+|z7-z4|+|z5-z2|+|z8-z5|+|z6-z3|+|z9-z6|),---(3)]]>g2=|z6-z8|+|z3-z7|+|z2-z4|,(4)g3=12(|z2-z1|+|z3-z2|+|z5-z4|+|z6-z5|+|z8-z7|+|z9-z8|),---(5)]]>g4=|z2-z6|+|z1-z9|+|z4-z8|,(6)该四个方向梯度中数值最大的一个梯度值能够认为指示了边缘的走向趋势,再根据该走向趋势的方向滤除多余的信息或修补断点,获取得到轮廓矩阵,最终通过轮廓矩阵转换得到二值边缘图像。现有的边缘检测算子在进行操作时分别需要从至少两个方向进行卷积计算以给可能的边缘点加权,包括Sobel算子、Canny算子、Prewitt算子、Roberts算子,有的方法甚至考虑了各个边缘方向的操作,如此以来,卷积计算的计算量较大直接影响了算法执行效率。本发明的方法是如何实现一个算子如同Laplace算子一样具有各向同性的特点,与此同时也并不会引起双边效应。考虑到各个算子的检测依据边缘地区的像点会拥有较大的权值,本发明方法的原理与统计学中的离散度不谋而合,因此,采用求取邻域离散度的方式来检测边缘像点以实现各向同性的效果。虽然求取离散度的方式并不能提供边缘的方向信息,但是基本上保证了边缘点满足的条件。在细化操作时,根据像点的方向梯度信息修补断点或消除冗余信息,保障图像物体轮廓的逻辑上的连续性以及轮廓的精确性。因此,本发明方法是可行的,并且可以引入到图像处理领域的其他方法中。为验证本发明方法中算法的鲁棒性及精确性,开发了Matlab程序在相同的条件下对图像进行模拟。如图3-图8所示,利用Canny、Sobel以及前文中本发明的算法对图3进行模拟得到不同的模拟结果。图3是原始图像的灰度图像,图4是采用Canny算子默认阈值检测所得到的模拟结果;图5采用Matlab默认阈值的Sobel算子,图5中有一处的灰度对比较小边缘没有检测出;图6采用阈值为0.1与0.5时的Canny算子,模拟结果效果与图5相同,并没有检测出灰度变化小的区域;图7采用本发明方法对图3进行模拟,图中的所有边缘均成功地检测出来。Canny与Sobel算子都依赖于阈值的选择,若选择不合适的阈值则会出现图5、图6中的情况,待检测图像中灰度变化较小的区域有可能会检测不出,而阈值的选择向来是一个麻烦的问题。图8显示出本发明方法的检测结果与原图轮廓的匹配程度。实验证明该方法在检测边缘时的精度并不输与Canny及Sobel算子,在细节处理方面更有优势。本发明的边缘检测方法,首先对灰度图像进行边缘特征提取,不同于传统算子的各向异性的边缘提取方式,该算法采用离散度的方式在不考虑边缘方向及类型的情况下能够成功地将边缘提取出来;再从水平方向及垂直方向对提取出的边缘信息进行细化操作;然后利用方向梯度信息对细化后的结果进行修补操作,以保证图像物体轮廓的连续性及精确性。与传统方法相比较,实验结果证明了该方法的可行性及鲁棒性。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1