技术领域
本发明属于数字图像处理技术领域,涉及一种图像中像素尺度计算方法,可以将其应用图像分割和图像处理其他领域的各种方法。
背景技术
在数字图像处理领域,特别是图像分割方面,需要根据图像的灰度、颜色、纹理等特征将图像划分为若干个互不相交而又有意义的区域。由于一般图像的构成都十分复杂,对图像通过计算机自动分割十分困难,分割结果往往不能令人满意,因此,图像分割成为了图像处理的经典难题之一。目前已经有很多人提出了各种算法来实现图像分割。在所有的分割算法中,为了充分的利用图像中每个像素的灰度等特征,仅仅通过一个像素的属性不能充分的表达出当前像素点与周围像素之间的依赖性。以一副图像中像素的灰度属性为例,在同一对象区域内部的像素灰度间是存在某种相似性的,或者说他们的像素灰度值都集中的体现在特定的灰度区间上。如果能在表达当前像素点的特征的同时采用一种尺度体现出与其邻近且属于同一对象区域的其他像素的属性,将更有利于表现局部结构的细节,同时也能达到平滑噪声的效果。因此,对图像中像素的尺度的计算具有重要的研究意义。
目前,在图像处理领域,为了计算出图像中每个像素点的尺度,通常以当前像素点为中心,设定一个相似性准则以及阈值,从半径为1的圆开始检测圆内像素是否满足阈值内的相似性准则,圆的半径逐渐增加,直到出现相似性准大于阈值时即停止。此时的圆半径即为所求的尺度范围(参见SahaPK,UdupaJK,OdhnerD.Scale-basedfuzzyconnectedimagesegmentation:theory,algorithms,andvalidation[J].ComputerVisionandImageUnderstanding,2000,77(2):145-174.和ZhugeY,UdupaJK,SahaPK.Vectorialscale-basedfuzzy-connectedimagesegmentation[J].ComputerVisionandImageUnderstanding,2006,101(3):177-193.)。该算法简称OSE算法。这种方式能很好的表现出局部属性,但是在上述过程中,相似性准则中阈值的选取对尺度的最终结果有很大的影响,而且逐圈寻找的方式很耗时,当同一区域内部存在强噪声或者多灰度差时,OSE算法将无法得到真实的尺度。
发明内容
本发明的目的在于提供一种图像中像素尺度快速计算方法,该方法克服了OSE算法需要选取一个阈值,计算时间复杂度比较大且抗噪性不高等缺点。避免了现有技术中尺度计算时阈值对分割结果的影响,同时提高尺度计算速度和抗噪性。改善了图像分割效果,且在实际应用中更易于执行。
为实现上述目的,本发明的具体实现步骤包括如下:
(1)用Canny算子计算出整幅图像的边缘B,将边缘点作为后期尺度计算判断的依据。
(2)对于当前像素点c,判断其是否为边缘点。若c为边缘点,执行(2.1);若c不为边缘点,执行(2.2);
(2.1)若c为边缘点,由于边缘点周围像素灰度变化大而且模糊,如果还要考虑该点周围的局部像素点对该点的影响或者依赖性,反而会干扰局部结构,则令c点尺度即r(c)=1,退出。
(2.2)若c不为边缘点,说明c点尺度大于或等于1,则以c为中心设计一个自适应正方形模版M,模版边长为2E+1,E=min(L,R,U,D)-1。其中L、R、U、D分别表示c点到图像左右上下边界的距离,如图4所示。
(3)计算当前像素点c的尺度大小。在模版B(M)内找出距离c最近边缘点e,c到e的距离即为点c的尺度。若模版B(M)里面全为零,执行(3.1);否则,执行(3.2)。
(3.1)B(M)全为零,则说明模版内没有边缘点,此时已经达到最大尺度,则令r(c)=E;
(3.2)以c为中心p从1到E开始的正方形边上按照8邻域的方式找最近边缘点e。如图5所示,当p=4时,如果t=t1+t2+t3+t4>1,说明在t1,t2,t3,t4四个点中最少有一个边缘点,则此时r(c)=4;如果t1,t2,t3,t4中没有边缘点,则分别从这四个点向上下或者左右扩张一次。如图4中扩张后的8个点为x1,x2,x3,x4和y1,y2,y3,y4。这8个点到c点的欧式距离相等。若t=x1+...+x4+y1+..+y4>1说明该8点中至少有一个边缘点,此时,
(4)对于像素c从边长3开始到边长为2E+1循环执行步骤(3),计算出点c的尺度r(c)。
(5)对图像中所有像素重复步骤(3)和(4),得到图像的尺度矩阵R。
本发明与现有的技术相比具有以下优点:
(1)消除了尺度计算时候阈值的影响,不再使用阈值,而是以边缘点作为判断条件;
(2)加快了尺度的计算速度。原始的尺度计算方法需要算出圆环区域内所有与中心点不同质的像素点的个数,如图2所示,因此需要遍历矩阵内所有像素;而新方法仅需要找一个边缘点,则仅需要每次在自适应模版边上搜索即可,大大缩短了寻找时间。
(3)提高了抗噪性。原尺度在目标或者背景区域内部遇到多个干扰点时,将无法正确的表达出尺度。如图2中的像素点c其尺度计算如图3所示,a1,a2,a3,a4为以c为中心半径为1的圆上像素,b1,b2,b3,b4,b5,b6,b7,b8为以c为中心半径为2的圆上像素,则d∈|B2(c)-B1(c)|={b1,b2,b3,b4,b5,b6,b7,b8}。若此时t取7/8,而d中有两个噪声点,则FO2(c)=6/8<7/8,得到r(c)=1,显然尺度表达有误。新方法通过先找出边缘的方式,只有寻找边缘的算法抗噪性好,在目标或者背景内不管遇到多少噪声点,对尺度的计算都没有影响。
附图说明
图1本发明算法的过程示意图
图2OSE算法计算尺度示意图
图3OSE算法计算尺度详解图
图4本发明计算尺度示意图
图5本发明计算尺度详解图
图6实验一中本发明与OSE算法对比实验图,
图7实验二中本发明与OSE算法对比实验图。
图8实验三中本发明与OSE算法对比实验图。
图9实验四中本发明与OSE算法对比实验图。
图10实验五中本发明与OSE算法对比实验图。
图11实验六中本发明与OSE算法对比实验图。
(其中,图6-11中各图分别表示:(a)实验图,图中有三个黑色十字星表示种子点位置,最上方的一个十字星表示背景种子点的位置,下方的两个十字星表示目标种子点的位置;(b)为OSE算法得到的尺度图;(c)为本发明算法得到的尺度图;(d)为OSE算法应用于模糊连接度算法分割脑部图中白质所得结果;(e)为本发明应用于模糊连接度算法分割脑部图中白质所得结果;(f)为分割脑部图中白质的标准分割结果。)
具体实施方式
下面结合附图对本发明作进一步的详细说明。
参照图1,本发明的具体实施过程如下:
(1)使用Canny算子计算出图像I的边缘矩阵B。
(2)对于图像I中某一像素点c,通过矩阵B,判断c点是否为边缘点。若c为边缘点,则跳到(2.1);若c不为边缘点,则跳到(2.2)。
(2.1)c为边缘点,由于边缘点周围都会存在模糊。因此,令c点尺度为1,即r(c)=1;
(2.2)c点不为边缘点,则以c点为中心建立一个正方形自适应模版,模版边长为2E+1,E=min(L,R,U,D)-1。其中L、R、U、D分别表示c点到图像左右上下边界的距离,如图4所示。
(3)计算当前像素点c的尺度大小。在模版B(M)内找出距离c最近边缘点e,c到e的距离即为点c的尺度。
(3.1)若模版B(M)里面全为零,则说明已经达到最大尺度,r(c)=E,退出;
(3.2)以c为中心到点c的距离为p的正方形边上按照8点式找边缘点,若找到边缘点e,则r(c)=||c-e||,退出;如图5所示,当p=4时,如果t=t1+t2+t3+t4>1,说明在t1,t2,t3,t4四个点中最少有一个边缘点,则此时r(c)=4;如果t1,t2,t3,t4中没有边缘点,则分别从这四个点向上下或者左右扩张一次。如图5中扩张后的8个点为x1,x2,x3,x4和y1,y2,y3,y4。这8个点到c点的欧式距离相等。若t=x1+...+x4+y1+..+y4>1说明该8点中至少有一个边缘点,此时,
(4)对于像素c从边长3开始到边长为E循环执行步骤(3),计算出点c的尺度r(c)。
(5)对图像中的所有像素循环执行步骤(3)和步骤(4),计算出图像的尺度矩阵R。
本发明的优点由以下仿真的数据和图像进一步说明。
1.仿真条件
为验证本发明一种快速尺度计算方法的优越性,实验仿真环境为windows7(32bit),InterPentiumi3,2.20GHz处理器,2GB内存的平台上用MATLAB7.11.0.584(R2010b)编程,采用脑部(BrainWeb)数据库(http://brainweb.bic.mni.mcgill.ca/brainweb/selection_normal.html)的CT图来测试。脑部数据库提供了三种脉冲形式(T1、T2、PD)的CT图,其图片大小为217×181。将本发明与OSE算法的到的尺度分别应用于模糊连接度算法来实现三种脑部CT图以及在加噪情况下白质的提取,并进行比较。共进行六组实验,每组实验中的OSE算法与本发明对比中计算亲和度时所用的均值和方差以及目标和背景种子点都相同,六组实验中目标种子点坐标为(107,69)(104,114),背景种子点坐标为(74,88),t均取7/8。实验中标准分割结果也来自脑部数据库(http://brainweb.bic.mni.mcgill.ca/brainweb/anatomic_normal.html)。
设标准分割结果为B,实验所得的分割结果为R,则实验中的识别率T的计算为:
其中,
2.仿真内容与结果
共进行了六组实验,同时将本发明与OSE算法进行对比。实验一和二均采用脉冲为T1的图,实验三和四采用脉冲为T2的图,实验五和六采用脉冲为PD的图。实验二、四、六的图是分别在实验一、三、五图中加入方差为0.02的高斯噪声之后的图。各组实验图属性见表(1)。
六组实验的实验图以及实验结果分别见图6、图7、图8、图9、图10、图11。六组实验中两种尺度计算时间与分割正确率分别见表(2)和表(3)。
表(1)六组实验图
表(2)六组实验尺度计算时间对比
表(3)六组实验分割的正确率对比
时间复杂度分析:对于一副图像I,大小为N,设整副图的尺度均值为m,用OSE算法,其中每次计算FO的时间复杂度为O((2m+1)2),则OSE算法时间复杂度为O(N*m*(2m+1)2)。而本文发明,不需要计算FO,通过寻找边缘点来计算尺度,每次寻找边缘点仅需要进行m次求和运算即可,其时间复杂度为O(N*m2)。而且,在有大量噪声的情况下,OSE算法的FO无法更好的描述出细节,从而扩大了受噪声干扰的像素点的尺度,导致在有噪声的条件下,整幅图像的平均尺度也扩大了。最后有噪声时OSE算法的耗时更久。
从表(2)可以看出,在六组实验中本发明都比OSE算法快很多。实验二、四、六中算法运行时间可以看出,在有噪声时,OSE算法的耗时明显比实验一、三和五中OSE算法的运行时间要多得多。说明在噪声干扰下,整幅图像尺度都扩大了。从实验一、三和五的耗时可以看出本发明算法明显比OSE算法要快。而且实验二、四、六中尺度计算时间也说明,在有噪声的条件下,本发明的尺度计算耗时几乎不受影响且比OSE算法快。
抗噪性分析:在噪声条件下,OSE算法将无法清晰的表达出像素的尺度。分别见实验二、四和六的实验图7、图9、图11中的图(b)OSE算法尺度图,可以看出OSE算法只能描述出图像尺度的大概轮廓,对图中的细小分支已经无法描述。同样在噪声条件下,本发明通过寻找边缘点的方式,将计算尺度分为两个步骤:第一步,通过Canny算子计算边缘点,由于Canny算子具有很好的抗噪性,因此通过Canny算子实现了去噪;第二步,寻找边缘点,此时只关注边缘点,从而与噪声点无关。从图7、图9、图11中的图(c)本发明尺度图可以看出在同样噪声条件下,本发明还能很好的表示出图像的尺度。
从表(3)中的实验一、三和五可以看出,在没有噪声的情况下,基于本发明的模糊连接度算法分割所得的结果均比OSE算法的模糊连接度分割结果要好。从这三组实验中的图(b)和图(c)中OSE算法的尺度图和本发明的尺度图可知本发明尺度表达的细节比OSE算法更清晰。表(3)中实验二、四和六的分割结果说明,在强噪声条件下,OSE算法几乎无法表达出尺度效果,从而导致最终无法得到分割结果。而本发明的抗噪性明显比OSE算法要好,在同等条件下,依这三组实验的图(b)和图(c)可知,仍能表达出尺度,最终实现了分割。
从六组实验可以看出,本发明算法相对于OSE算法,不仅加快了运算时间,而且增强了尺度计算的抗噪性。同时也能更好的体现出局部细节。