一种快速的像素尺度计算方法转让专利

申请号 : CN201410274737.2

文献号 : CN105279748B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 葛洪伟周得水杨金龙袁运浩苏树智

申请人 : 江南大学

摘要 :

本发明公开了一种图像中像素尺度快速的计算方法,对一副图像中每个像素的尺度实现过程为:(1)对待处理图像应用Canny算子进行边缘检测,得到边缘矩阵;(2)对当前像素点,若为边缘点,则令其尺度为1,若不为边缘点,则以当前点为中心建立一个自适应正方形模版;(3)在模版内采用8点式找距离当前点最近的边缘点,两点的距离即为当前点的尺度;(4)对图像中所有的像素点执行(2)和(3)得到整幅图像的尺度。该方法以图像的边缘作为判断准则,与现有的技术相比计算速度更快,更容易实现,抗噪性更好。所得图像的尺度可用于医学图像的精确分割与目标提取。

权利要求 :

1.一种图像中像素尺度计算方法,对于一副图像,尺度计算过程如下:(1)用Canny算子计算出整幅图的边缘B,将边缘点作为后期尺度计算判断的依据;

(2)对于当前像素点c,判断其是否为边缘点,若c为边缘点,执行(2.1),若c不为边缘点,执行(2.2);

(2.1)若c为边缘点,由于边缘点周围像素灰度变化大而且模糊,如果还要考虑该点周围的局部像素点对该点的影响或者依赖性,反而会干扰局部结构,所以令c点尺度为1,即r(c)=1,c点尺度计算结束,执行(4);

(2.2)若c不为边缘点,说明c点尺度大于1,则以c为中心设计一个自适应正方形模版M,模版边长为2E+1,E=min(L,R,U,D)-1,其中L、R、U、D分别表示c点到图像左右上下边界的距离;

(3)计算当前像素点c的尺度大小,即在模版M内找出距离c最近边缘点e,c到e的距离即为点c的尺度;具体过程为,若模版M里面全为零,执行(3.1);否则,执行(3.2);

(3.1)模版M里面全为零,则说明模版内没有边缘点,已经达到当前像素点的最大尺度,即r(c)=E,c点尺度计算结束,执行(4);

(3.2)模版M里面非全零,则说明模版内有边缘点,通过下面的步骤搜索到最近的边缘点并得到点c的尺度r(c):(a)令p=1;

(b)按照8点式搜索方法在以c为中心边长为2×p+1的正方形边上寻找最近边缘点e;如果找不到边缘点,则执行(c);如果找到最近边缘点e,则由8点式搜索方法给出c的尺度r(c),然后执行(4);

(c)p加1,执行(b);

8点式搜索方法可以以p=4时为例说明如下:

(A)令t1,t2,t3,t4分别表示以c为中心边长为2×4+1的正方形的左边、右边、上边、下边四条边的中点,如果t=t1+t2+t3+t4>1,说明在t1,t2,t3,t4四个点中最少有一个边缘点,则此时r(c)=4;如果t1,t2,t3,t4中没有边缘点,则执行(B);

(B)取t1的上、下两个点x1、y1,t2的上、下两个点x2、y2,t3的左、右两个点x3、y3,t4的左、右两个点x4、y4,共8个点,这8个点到c点的欧式距离相等,若t=x1+...+x4+y1+..+y4>1说明该8点中至少有一个边缘点,此时, 其中ceil表示向上取整;若还没有找到边缘点,则执行(C);

(C)取x1的上点x1′、y1的下点y′1、x2的上点x2′、y2的下点y′2、x3的左点x3′、y3的右点y′3、x4的左点x4′、y4的右点y′4,共8个点,这8个点到c点的欧式距离同样相等,将这8个点的值求和,若和大于1,则说明该8点中至少有一个边缘点,此时, 若还是没有找到边缘点,则执行(D);

(D)按(C)的方法类推,直到取的点是正方形的四个角点;当取到的点是正方形的四个角点时,若这些角点值的和大于1,则说明至少有一个角点是边缘点,此时,否则说明没有边缘点;

(4)对图像中所有像素重复步骤(2)和(3),得到图像的尺度矩阵R。

说明书 :

一种快速的像素尺度计算方法

技术领域

[0001] 本发明属于数字图像处理技术领域,涉及图像中像素尺度的计算;具体地说是一种快速的像素尺度计算方法,可以将其应用于图像分割,目标提取和图像处理其他领域。

背景技术

[0002] 在数字图像处理领域,特别是图像分割方面,需要根据图像的灰度、颜色、纹理等特征将图像划分为若干个互不相交而又有意义的区域。由于一般图像的构成都十分复杂,对图像通过计算机自动分割十分困难,分割结果往往不能令人满意,因此,图像分割成为了图像处理的经典难题之一。目前已经有很多人提出了各种算法来实现图像分割。在所有的分割算法中,为了充分的利用图像中每个像素的灰度等特征,仅仅通过一个像素的属性不能充分的表达出当前像素点与周围像素之间的依赖性。以一副图像中像素的灰度属性为例,在同一对象区域内部的像素灰度间是存在某种相似性的,或者说他们的像素灰度值都集中的体现在特定的灰度区间上。如果能在表达当前像素点的特征的同时采用一种尺度体现出与其邻近且属于同一对象区域的其他像素的属性,将更有利于表现局部结构的细节,同时也能达到平滑噪声的效果。因此,对图像中像素的尺度的计算具有重要的研究意义。
[0003] 目前,在图像处理领域,为了计算出图像中每个像素点的尺度,通常以当前像素点为中心,设定一个相似性准则以及阈值,从半径为1的圆开始检测圆内像素是否满足阈值内的相似性准则,圆的半径逐渐增加,直到出现相似性准大于阈值时即停止。此时的圆半径即为所求的尺度范围(参见Saha P K,Udupa J K,Odhner D.Scale-based fuzzy connected image segmentation:theory,algorithms,and validation[J].Computer Vision and Image Understanding,2000,77(2):145-174.和Zhuge Y,Udupa J K,Saha P K.Vectorial scale-based fuzzy-connected image segmentation[J].Computer Vision and Image Understanding,2006,101(3):177-193.)。该算法简称OSE算法。这种方式能很好的表现出局部属性,但是在上述过程中,相似性准则中阈值的选取对尺度的最终结果有很大的影响,而且逐圈寻找的方式很耗时,当同一区域内部存在强噪声或者多灰度差时,OSE算法将无法得到真实的尺度。

发明内容

[0004] 本发明的目的在于提供一种图像中像素尺度快速计算方法,该方法克服了OSE算法需要选取一个阈值,计算时间复杂度比较大且抗噪性不高等缺点。避免了现有技术中尺度计算时阈值对分割结果的影响,同时提高尺度计算速度和抗噪性。改善了图像分割效果,且在实际应用中更易于执行。
[0005] 为实现上述目的,本发明的具体实现步骤包括如下:
[0006] (1)用Canny算子计算出整幅图像的边缘B,将边缘点作为后期尺度计算判断的依据;
[0007] (2)对于当前像素点c,判断其是否为边缘点。若c为边缘点,执行(2.1);若c不为边缘点,执行(2.2);
[0008] (2.1)若c为边缘点,由于边缘点周围像素灰度变化大而且模糊,如果还要考虑该点周围的局部像素点对该点的影响或者依赖性,反而会干扰局部结构,所以令c点尺度为1,即r(c)=1,c点尺度计算结束,执行(4);
[0009] (2.2)若c不为边缘点,说明c点尺度大于或等于1,则以c为中心设计一个自适应正方形模版M,模版边长为2E+1,E=min(L,R,U,D)-1,其中L、R、U、D分别表示c点到图像左右上下边界的距离,如说明书附图中图(4)所示;
[0010] (3)计算当前像素点c的尺度大小,即在模版M内找出距离c最近边缘点e,c到e的距离即为点c的尺度;具体过程为,若模版M里面全为零,执行(3.1);否则,执行(3.2);
[0011] (3.1)模版M里面全为零,则说明模版内没有边缘点,此时已经达到最大尺度,则令r(c)=E,c点尺度计算结束,执行(4);
[0012] (3.2)模版M里面非全零,则说明模版内有边缘点,通过下面的步骤搜索到最近的边缘点并得到点c的尺度r(c):
[0013] (a)令p=1;
[0014] (b)按照8点式搜索方法在以c为中心边长为2×p+1的正方形边上寻找最近边缘点e;如果找不到边缘点,则执行(c);如果找到最近边缘点e,则由8点式搜索方法给出c的尺度r(c),然后执行(4);
[0015] (c)p加1,执行(b);
[0016] (4)对图像中所有像素重复步骤(2)和(3),得到图像的尺度矩阵R。
[0017] 本发明与现有的技术相比具有以下优点:
[0018] (1)消除了尺度计算时候阈值的影响,不再使用阈值,而是以边缘点作为判断条件;
[0019] (2)加快了尺度的计算速度。原始的尺度计算方法需要算出圆环区域内所有与中心点不同质的像素点的个数,如说明书附图中图(2)所示,因此需要遍历矩阵内所有像素;而新方法仅需要找一个边缘点,仅需要每次在自适应模版边上搜索即可,大大缩短了寻找时间。
[0020] (3)提高了抗噪性。原OSE算法在目标或者背景区域内部遇到多个干扰点时,将无法正确的表达出尺度。
[0021] 例如:图(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中有两个噪声点,则根据OSE算法可计算出FO2(c)=6/8<7/8,此时得到r(c)=1,显然尺度表达有误。新方法通过先找出边缘的方式,只要寻找边缘的算法抗噪性好,在目标或者背景内不管遇到多少噪声点,对尺度的计算都没有影响。

附图说明

[0022] 图1本发明算法的过程示意图
[0023] 图2 OSE算法计算尺度示意图
[0024] 图3 OSE算法计算尺度详解图
[0025] 图4本发明计算尺度示意图
[0026] 图5本发明计算尺度详解图
[0027] 图6实验一中本发明与OSE算法对比实验图,
[0028] 图7实验二中本发明与OSE算法对比实验图。
[0029] 图8实验三中本发明与OSE算法对比实验图。
[0030] 图9实验四中本发明与OSE算法对比实验图。
[0031] 图10实验五中本发明与OSE算法对比实验图。
[0032] 图11实验六中本发明与OSE算法对比实验图。
[0033] (其中,图6至图11中各图分别表示:(a)实验图,图中有三个黑色十字星表示种子点位置,最上方的一个十字星表示背景种子点的位置,下方的两个十字星表示目标种子点的位置;(b)为OSE算法得到的尺度图;(c)为本发明算法得到的尺度图;(d)为OSE算法应用于模糊连接度算法分割脑部图中白质所得结果;(e)为本发明应用于模糊连接度算法分割脑部图中白质所得结果;(f)为分割脑部图中白质的标准分割结果。)

具体实施方式

[0034] 下面结合附图对本发明作进一步的详细说明。
[0035] 参照图(1),本发明的具体实施过程如下:
[0036] (1)用Canny算子计算出整幅图的边缘B,将边缘点作为后期尺度计算判断的依据;
[0037] (2)对于当前像素点c,判断其是否为边缘点,若c为边缘点,执行(2.1),若c不为边缘点,执行(2.2);
[0038] (2.1)若c为边缘点,由于边缘点周围像素灰度变化大而且模糊,如果还要考虑该点周围的局部像素点对该点的影响或者依赖性,反而会干扰局部结构,所以令c点尺度为1,即r(c)=1,c点尺度计算结束,执行(4);
[0039] (2.2)若c不为边缘点,说明c点尺度大于1,则以c为中心设计一个自适应正方形模版M,模版边长为2E+1,E=min(L,R,U,D)-1,其中L、R、U、D分别表示c点到图像左右上下边界的距离,如图(4)所示;
[0040] (3)计算当前像素点c的尺度大小,即在模版M内找出距离c最近边缘点e,c到e的距离即为点c的尺度;具体过程为,若模版M里面全为零,执行(3.1);否则,执行(3.2);
[0041] (3.1)模版M里面全为零,则说明模版内没有边缘点,已经达到当前像素点的最大尺度,即r(c)=E,c点尺度计算结束,执行(4);
[0042] (3.2)模版M里面非全零,则说明模版内有边缘点,通过下面的步骤搜索到最近的边缘点并得到点c的尺度r(c):
[0043] (a)令p=1;
[0044] (b)按照8点式搜索方法在以c为中心边长为2×p+1的正方形边上寻找最近边缘点e;如果找不到边缘点,则执行(c);如果找到最近边缘点e,则由8点式搜索方法给出c的尺度r(c),然后执行(4);
[0045] (c)p加1,执行(b);
[0046] 8点式搜索方法可以以p=4时为例说明,如图(5)所示,具体过程如下:
[0047] (A)令t1,t2,t3,t4分别表示以c为中心边长为2×4+1的正方形的左边、右边、上边、下边四条边的中点,如果t=t1+t2+t3+t4>1,说明在t1,t2,t3,t4四个点中最少有一个边缘点,则此时r(c)=4;如果t1,t2,t3,t4中没有边缘点,则执行(B);
[0048] (B)取l1的上、下两个点x1、y1,l2的上、下两个点x2、y2,l3的左、右两个点x3、y3,t4的左、右两个点x4、y4,共8个点,这8个点到c点的欧式距离相等,若t=x1+...+x4+y1+..+y4>1说明该8点中至少有一个边缘点,此时, 其中ceil表示向上取整;若还没有找到边缘点,则执行(C);
[0049] (C)取x1的上点x′1、y1的下点y′1、x2的上点x2′、y2的下点y′2、x3的左点x3′、y3的右点y′3、x4的左点x4′、y4的右点y′4,共8个点,这8个点到c点的欧式距离同样相等,将这8个点的值求和,若和大于1,则说明该8点中至少有一个边缘点,此时, 若还是没有找到边缘点,则执行(D);
[0050] (D)按(C)的方法类推,直到取的点是正方形的四个角点;当取到的点是正方形的四个角点时,若这些角点值的和大于1,则说明至少有一个角点是边缘点,此时,否则说明没有边缘点;
[0051] (4)对图像中所有像素重复步骤(2)和(3),得到图像的尺度矩阵R。
[0052] 本发明的效果可由以下仿真实验进一步说明。
[0053] 1、仿真条件
[0054] 实验仿真环境为windows7(32bit)、Inter Pentiumi3、2.20GHz处理器、2GB内存的平台,用MATLAB 7.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),OSE算法中的阈值t均取7/8。实验中标准分割结果也来自脑部数据库(http://brainweb.bic.mni.mcgill.ca/brainweb/anatomic_normal.html)。
[0055] 设标准分割结果为B,实验所得的分割结果为R,则实验中的识别率T的计算为:
[0056]
[0057] 其中, 得到的是分割出标准结果的像素点个数, 表示异或运算,|B|表示整个图像的像素个数。
[0058] 2、仿真内容与结果
[0059] 共进行了六组实验,同时将本发明与OSE算法进行对比。实验一和二均采用脉冲为T1的图,实验三和四采用脉冲为T2的图,实验五和六采用脉冲为PD的图。实验二、四、六的图是分别在实验一、三、五图中加入方差为0.02的高斯噪声之后的图。各组实验图属性见表(1)。
[0060] 六组实验的实验图以及实验结果分别见图(6)、图(7)、图(8)、图(9)、图(10)、图(11)。六组实验中两种尺度计算时间与分割正确率分别见表(2)和表(3)。
[0061] 表(1)六组实验图
[0062]
[0063] 表(2)六组实验尺度计算时间对比
[0064]
[0065] 表(3)六组实验分割的正确率对比
[0066]
[0067] 时间复杂度分析:对于一副图像I,大小为N,设整副图的尺度均值为m,用OSE算法,其中每次计算FO的时间复杂度为O((2m+1)2),则OSE算法时间复杂度为O(N*m*(2m+1)2)。而本文发明,不需要计算FO,通过寻找边缘点来计算尺度,每次寻找边缘点仅需要进行m次求和运算即可,其时间复杂度为O(N*m2)。而且,在有大量噪声的情况下,OSE算法的FO无法更好的描述出细节,从而扩大了受噪声干扰的像素点的尺度,导致在有噪声的条件下,整幅图像的平均尺度也扩大了。最后有噪声时OSE算法的耗时更久。
[0068] 从表(2)可以看出,在六组实验中本发明都比OSE算法快很多。实验二、四、六中算法运行时间可以看出,在有噪声时,OSE算法的耗时明显比实验一、三和五中OSE算法的运行时间要多得多。说明在噪声干扰下,整幅图像尺度都扩大了。从实验一、三和五的耗时可以看出本发明算法明显比OSE算法要快。而且实验二、四、六中尺度计算时间也说明,在有噪声的条件下,本发明的尺度计算耗时几乎不受影响且比OSE算法快很多。
[0069] 抗噪性分析:在噪声条件下,OSE算法将无法清晰的表达出像素的尺度。分别见实验二、四和六的实验图(7)、图(9)、图(11)中的图(b)OSE算法尺度图,可以看出OSE算法只能描述出图像尺度的大概轮廓,对图中的细小分支已经无法描述。同样在噪声条件下,本发明通过寻找边缘点的方式,将计算尺度分为两个步骤:第一步,通过Canny算子计算边缘点,由于Canny算子具有很好的抗噪性,因此通过Canny算子实现了去噪;第二步,寻找边缘点,此时只关注边缘点,从而与噪声点无关。从图(7)、图(9)、图(11)中的图(c)本发明尺度图可以看出在同样噪声条件下,本发明还能很好的表示出图像的尺度。
[0070] 从表(3)中的实验一、三和五可以看出,在没有噪声的情况下,基于本发明的模糊连接度算法分割所得的结果均比OSE算法的模糊连接度分割结果要好。从这三组实验中的图(b)和图(c)中OSE算法的尺度图和本发明的尺度图可知本发明尺度表达的细节比OSE算法更清晰。表(3)中实验二、四和六的分割结果说明,在强噪声条件下,OSE算法几乎无法表达出尺度效果,从而导致最终无法得到分割结果。而本发明的抗噪性明显比OSE算法要好,在同等条件下,依这三组实验的图(c)可知,本发明方法仍能表达出尺度,最终实现了分割。
[0071] 从六组实验可以看出,本发明算法相对于OSE算法,不仅加快了运算时间,而且增强了尺度计算的抗噪性。同时也能更好的体现出局部细节。