发明内容
基于此,有必要提供一种图像细化方法及系统,不能能够保证细化结果的旋转不敏感性,还能兼顾保持图像连通性和单像素宽特性。
为实现上述目的,本发明提供了如下方案:
一种图像细化方法,包括:
获取待细化的目标二值图像;
计算所述目标二值图像的中心坐标;
根据所述中心坐标计算所有前景像素的向心方向参量;所述向心方向参量的计算公式如下:
其中,Scentri(p)为像素p的向心方向参量,α为常数,DPC(p)为像素p到所述中心坐标的距离,p=1表示像素p为前景像素,p=0表示像素p为背景像素;
计算所有前景像素到边界的距离DNB,利用DNB计算局域中心参数,根据所述局域中心参数确定局域中心像素;
将所有DNB按数值大小升序排列并分组,将DNB值相同的像素划分到同一组中;
用串行方法对第k组中的像素进行细化处理,并计算第k组中每个像素的邻域参量和法线方向参量;
针对第k组中每个像素,对所述向心方向参量、所述邻域参量和所述法线方向参量求和得到参量和,根据所述参量和升序排列并划分子域,将参量和相同的像素划分到同一个子域中;
对第k组中的所有子域按照排列顺序逐一在每个子域内进行并行细化处理,删除不属于骨架的像素;
判断k是否为最大组数,得到第一判断结果;
若所述第一判断结果表示否,则令k的值加1,并返回步骤“用串行方法对第k组中的像素进行细化处理,并计算第k组中每个像素的邻域参量和法线方向参量”;
若所述第一判断结果表示是,则删除连接到所述局域中心像素的冗余像素,得到当前图像细化结果;
判断当前图像细化结果与上一图像细化结果是否相同,得到第二判断结果;
若所述第二判断结果表示否,则返回步骤“计算所有前景像素到边界的距离DNB,利用DNB计算局域中心参数,根据所述局域中心参数确定局域中心像素”;
若所述第二判断结果表示是,则以当前图像细化结果作为最终图像细化结果。
可选的,所述计算所述目标二值图像的中心坐标,具体包括:
利用如下公式计算所述目标二值图像的中心坐标:
其中px、py分别为中心坐标中的横坐标和纵坐标,m为所述目标二值图像的行号,n为所述目标二值图像的列号;Round为四舍五入取整函数。
可选的,所述对第k组中的所有子域按照排列顺序逐一在每个子域内进行并行细化处理,删除不属于骨架的像素,具体包括:
选出所有属于当前子域内的像素,得到选中像素;
重新计算各个所述选中像素的邻域参量,得到邻域参量新值;
将所述邻域参量新值满足预设条件的像素变为背景像素。
可选的,所述删除连接到所述局域中心像素的冗余像素,得到当前图像细化结果,具体包括:
识别骨架端点像素;
在所述骨架端点像素中筛选出8邻域像素中有一个属于局域中心像素的端点像素,得到冗余像素;
删除所述冗余像素。
一种图像细化系统,包括:
图像获取模块,用于获取待细化的目标二值图像;
中心坐标计算模块,用于计算所述目标二值图像的中心坐标;
向心方向参量计算模块,用于根据所述中心坐标计算所有前景像素的向心方向参量;所述向心方向参量的计算公式如下:
其中,Scentri(p)为像素p的向心方向参量,α为常数,DPC(p)为像素p到所述中心坐标的距离,p=1表示像素p为前景像素,p=0表示像素p为背景像素;
局域中心像素确定模块,用于计算所有前景像素到边界的距离DNB,利用 DNB计算局域中心参数,根据所述局域中心参数确定局域中心像素;
分组模块,用于将所有DNB按数值大小升序排列并分组,将DNB值相同的像素划分到同一组中;
第一细化处理模块,用于用串行方法对第k组中的像素进行细化处理,并计算第k组中每个像素的邻域参量和法线方向参量;
子域划分模块,用于针对第k组中每个像素,对所述向心方向参量、所述邻域参量和所述法线方向参量求和得到参量和,根据所述参量和升序排列并划分子域,将参量和相同的像素划分到同一个子域中;
第二细化处理模块,用于对第k组中的所有子域按照排列顺序逐一在每个子域内进行并行细化处理,删除不属于骨架的像素;
第一判断模块,用于判断k是否为最大组数,得到第一判断结果;
累加返回模块,用于若所述第一判断结果表示否,则令k的值加1,并返回所述第一细化处理模块;
冗余像素删除模块,用于若所述第一判断结果表示是,则删除连接到所述局域中心像素的冗余像素,得到当前图像细化结果;
第二判断模块,用于判断当前图像细化结果与上一图像细化结果是否相同,得到第二判断结果;
返回模块,用于若所述第二判断结果表示否,则返回所述局域中心像素确定模块;
最终细化结果确定模块,用于若所述第二判断结果表示是,则以当前图像细化结果作为最终图像细化结果。
可选的,所述中心坐标计算模块包括:
中心坐标计算单元,用于利用如下公式计算所述目标二值图像的中心坐标:
其中px、py分别为中心坐标中的横坐标和纵坐标,m为所述目标二值图像的行号,n为所述目标二值图像的列号;Round为四舍五入取整函数。
可选的,所述第二细化处理模块包括:
像素提取单元,用于选出所有属于当前子域内的像素,得到选中像素;
邻域参量重新计算单元,用于重新计算各个所述选中像素的邻域参量,得到邻域参量新值;
像素改变单元,用于将所述邻域参量新值满足预设条件的像素变为背景像素。
可选的,所述冗余像素删除模块包括:
端点识别单元,用于识别骨架端点像素;
筛选单元,用于在所述骨架端点像素中筛选出8邻域像素中有一个属于局域中心像素的端点像素,得到冗余像素;
删除单元,用于删除所述冗余像素。
与现有技术相比,本发明的有益效果是:本发明提出了一种图像细化方法及系统。该方法及系统通过先排序分组,再排序划分子域,从而将前景像素划分在不同的子域中。用串行方法依次对不同组进行细化操作,用并行方法对处于同一子域内的像素进行细化操作,从而能够在保证细化结果的旋转不敏感性的同时,使得细化结果兼顾保持原图像的连通性和严格单像素宽的特性,从而能够适用于模式识别和目标匹配方面。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
图1为本发明实施例1的图像细化方法的方法流程图。
参见图1,该图像细化方法,包括:
步骤101:获取待细化的目标二值图像I;将目标二值图像I中赋值为1 的像素设定为黑色的前景像素,赋值为0的像素设定为白色的背景像素。
步骤102:计算所述目标二值图像的中心坐标。
图2为本发明实施例1的坐标系示意图。参见图2,利用如下公式计算所述目标二值图像的中心坐标:
其中px、py分别为中心坐标中的横坐标和纵坐标,m为所述目标二值图像的行号,n为所述目标二值图像的列号;Round为四舍五入取整函数。
步骤103:根据所述中心坐标计算所有前景像素的向心方向参量;所述向心方向参量的计算公式如下:
其中,Scentri(p)为像素p的向心方向参量,α为常数,DPC(p)为像素p到所述中心坐标的距离,p=1表示像素p为前景像素,p=0表示像素p为背景像素。
步骤104:计算所有前景像素到边界的距离DNB,利用DNB计算局域中心参数,根据所述局域中心参数确定局域中心像素。
前景像素到边界的距离DNB的计算方法如下:
其中,||p-q||2表示像素p到前景边界像素点q之间的欧氏距离。
局域中心参数Mcenter的计算方法如下:
其中,pi代表p的8个8邻域像素点,如附图3所示;当pi为前景像素时,值为1;当pi为背景像素时,值为0。
如果Mcenter(p)=1,那么前景像素点p是一个局域中心像素。
步骤105:将所有DNB按数值大小升序排列并分组,将DNB值相同的像素划分到同一组中。对某个前景像素p,若其DNB数值按升序排在第k(1≤k≤u) 位,则将其分配在第k分组。u为最大组数。背景像素不分配到任何分组中。
步骤106:用串行方法对第k组中的像素进行细化处理,并计算第k组中每个像素的邻域参量和法线方向参量。
邻域参量Sneigh的计算方法如下:
其中,Table表示表1所示的查找表;(p7p6p5p4)2表示由p7p6p5p4排列成的二进制数,(p3p2p1p0)2表示由p3p2p1p0排列成的二进制数。 Table[(p7p6p5p4)2,(p3p2p1p0)2]表示在查找表Table中的第(p7p6p5p4)2行第(p3p2p1p0)2列所对应的表格数值。
表1Table查找表
法线方向参量Snorm的计算方法如下:
当满足下公式中的任何一个,并且p=1时,那么Snorm(p)=0.5,否则 Snorm(p)=0:
p2·p6·(1-p3)·(1-p4)·(1-p5)=1,且j<py
p2·p6·(1-p0)·(1-p1)·(1-p7)=1,且j>py
p0·p4·(1-p1)·(1-p2)·(1-p3)=1,且i<px
p0·p4·(1-p5)·(1-p6)·(1-p7)=1,且i>px
p3·p7·(1-p4)·(1-p5)·(1-p6)=1,且j-i<py-px
p3·p7·(1-p0)·(1-p1)·(1-p2)=1,且j-i>py-px
p1·p5·(1-p2)·(1-p3)·(1-p4)=1,且j+i<py+px
p1·p5·(1-p6)·(1-p7)·(1-p0)=1,且j+i>py+px
其中,i和j分别表示p在图像I中所处的行号和列号。
步骤107:针对第k组中每个像素,对所述向心方向参量、所述邻域参量和所述法线方向参量求和得到参量和,根据所述参量和升序排列并划分子域,将参量和相同的像素划分到同一个子域中。
参量和Ssubfield的计算公式为:
Ssubfield(p)=Sneigh(p)+Scentri(p)+Snorm(p)
设第k分组中的所有像素共有vk个不同的Ssubfield分值,则将第k分组分为vk个不同的子域,参见图4。
在每次迭代中,符合Sneigh(p)=15的像素是不可删除的,它们不会分配给任何的子域。其它所有像素都会根据其参量和Ssubfield的大小被分配到唯一的一个子域当中。
步骤108:对第k组中的所有子域按照排列顺序逐一在每个子域内进行并行细化处理,根据查找表删除不属于骨架的像素。
该步骤108具体包括:
选出所有属于当前子域内的像素,得到选中像素;
重新计算各个所述选中像素的邻域参量,得到邻域参量新值;
将所述邻域参量新值满足预设条件(邻域参量新值等于15)的像素变为背景像素。其他像素不动。
由于在该过程中存在删除操作(将前景像素变为背景像素),因此对前景像素点p,Sneigh(p)的取值有可能发生改变;但该过程不重新计算参量和 Ssubfield(p),因此像素点p所属的子域不会发生变化。
步骤109:判断k是否为最大组数,得到第一判断结果;
步骤110:若所述第一判断结果表示否,则令k的值加1,并返回步骤106;
步骤111:若所述第一判断结果表示是,则删除连接到所述局域中心像素的冗余像素,得到当前图像细化结果。
该步骤111具体包括:
识别骨架端点像素;
在所述骨架端点像素中筛选出8邻域像素中有一个属于局域中心像素的端点像素,得到冗余像素;
删除所述冗余像素。
步骤112:判断当前图像细化结果与上一图像细化结果是否相同,得到第二判断结果。若所述第二判断结果表示否,则返回步骤步骤104。若所述第二判断结果表示是,则执行步骤113。
步骤113:当前图像细化结果不再发生变化,则以当前图像细化结果作为最终图像细化结果。
下面举例来对本发明的实施例1进行说明。
图5为本发明实施例1的图像细化方法的细化过程举例示意图。
参见图5,图5(a)为待细化图像。很明显,m=9,n=4。根据中心坐标 Pc(px,py)的计算公式有,px=5,py=3。在第一次迭代中,根据目标像素点p 到边界的距离值DNB的计算方法计算DNB,结果如图5(b)所示。由于DNB有三个不同的值,因此前景像素分为三组,如图5(c)所示。根据向心方向参量Scentri、领域参量Sneigh和法线方向参量Snorm的计算公式分别计算出各值,然后可以计算出参量和Ssubfield值,如图5(d)所示。根据子域的升序,可以得到子域的设置,如图5(e)所示。大多数子域只包含一个像素,标记为“S2-”和“S3-”的像素不属于任何子域,因为它们符合Snrigh(p)=15。通过使用从S1-1到S1-17,从S2-1 到S2-4的顺序,然后对每个子域合理地应用并行操作,得到如图5(f)所示的中间结果。由于在第二次迭代中不需要删除多余的像素,因此图5(f)是图像细化的最终结果。
图6为在90度倍角旋转情况下不同方法得到的图像细化结果。
以图6为例来说明本发明采用的方法同时具备保持原图像连通性、严格单像素宽和严格的90度旋转不变性这三个方面特性。图6(a)是1幅二值图像及其在旋转90度、180度和270度后得到的3幅图像。图6(b)到图6(k)是采用其它经典细化方法对图6(a)中的4幅图像进行细化得到的结果。仔细观察它们可发现,图6(e)、图6(g)、图6(i)、图6(j)不具备严格单像素宽特性;仅有图6(k) 具有90度旋转不变性,但它没有保持原图的连通性。因此其它经典细化方法都没有同时具备上述三个方面特性。图6(l)是采用本发明方法得到的细化结果,可以看到该结果同时具备上述三个方面特性。
图7为在非90度倍角旋转情况下不同方法得到的图像细化结果。
以图7为例来说明本发明采用的方法具备优越的旋转不敏感性。图7(a)、 (b)、(c)三行图像是其它经典细化方法得到的在非90度倍角旋转下的图像细化结果。仔细观察可发现,图7(a)、(b)两行图像在不同转角下细化结果的中心轴出现明显的区别;图7(a)、(b)、(c)三行图像的细化结果都出现了有明显区别的冗余分支。图7(d)的图像是采用本发明方法得到的细化结果,可以看到当原图以任意角度旋转时,只有本发明方法对旋转不敏感,即在不同的旋转角度下得到的细化结果具有高度的相似性。因此采用本发明方法进行图像细化,更有利于对目标图像进行模式识别和目标匹配等方面的应用。
由此可知,本发明的排序方式和像素删除方式能够保证细化结果的旋转不敏感性,还兼具保持原图像连通性和严格单像素宽特性,因而在模式识别和目标匹配方面具有很好的应用前景。
实施例2:
图8为本发明实施例2的图像细化系统的系统结构图。
参见图8,该图像细化系统,包括:
图像获取模块201,用于获取待细化的目标二值图像;
中心坐标计算模块202,用于计算所述目标二值图像的中心坐标;
向心方向参量计算模块203,用于根据所述中心坐标计算所有前景像素的向心方向参量;所述向心方向参量的计算公式如下:
其中,Scentri(p)为像素p的向心方向参量,α为常数,DPC(p)为像素p到所述中心坐标的距离,p=1表示像素p为前景像素,p=0表示像素p为背景像素;
局域中心像素确定模块204,用于计算所有前景像素到边界的距离DNB,利用DNB计算局域中心参数,根据所述局域中心参数确定局域中心像素;
分组模块205,用于将所有DNB按数值大小升序排列并分组,将DNB值相同的像素划分到同一组中;
第一细化处理模块206,用于用串行方法对第k组中的像素进行细化处理,并计算第k组中每个像素的邻域参量和法线方向参量;
子域划分模块207,用于针对第k组中每个像素,对所述向心方向参量、所述邻域参量和所述法线方向参量求和得到参量和,根据所述参量和升序排列并划分子域,将参量和相同的像素划分到同一个子域中;
第二细化处理模块208,用于对第k组中的所有子域按照排列顺序逐一在每个子域内进行并行细化处理,删除不属于骨架的像素;
第一判断模块209,用于判断k是否为最大组数,得到第一判断结果;
累加返回模块210,用于若所述第一判断结果表示否,则令k的值加1,并返回所述第一细化处理模块206;
冗余像素删除模块211,用于若所述第一判断结果表示是,则删除连接到所述局域中心像素的冗余像素,得到当前图像细化结果;
第二判断模块212,用于判断当前图像细化结果与上一图像细化结果是否相同,得到第二判断结果;
返回模块213,用于若所述第二判断结果表示否,则返回所述局域中心像素确定模块204;
最终细化结果确定模块214,用于若所述第二判断结果表示是,则以当前图像细化结果作为最终图像细化结果。
可选的,所述中心坐标计算模块202包括:
中心坐标计算单元,用于利用如下公式计算所述目标二值图像的中心坐标:
其中px、py分别为中心坐标中的横坐标和纵坐标,m为所述目标二值图像的行号,n为所述目标二值图像的列号;Round为四舍五入取整函数。
可选的,所述第二细化处理模块208包括:
像素提取单元,用于选出所有属于当前子域内的像素,得到选中像素;
邻域参量重新计算单元,用于重新计算各个所述选中像素的邻域参量,得到邻域参量新值;
像素改变单元,用于将所述邻域参量新值满足预设条件的像素变为背景像素。
可选的,所述冗余像素删除模块211包括:
端点识别单元,用于识别骨架端点像素;
筛选单元,用于在所述骨架端点像素中筛选出8邻域像素中有一个属于局域中心像素的端点像素,得到冗余像素;
删除单元,用于删除所述冗余像素。
与现有技术相比,本发明的有益效果是:本发明提出了一种图像细化方法及系统。该方法及系统通过先排序分组,再排序划分子域,从而将前景像素划分在不同的子域中。用串行方法依次对不同组进行细化操作,用并行方法对处于同一子域内的像素进行细化操作,从而能够在保证细化结果的旋转不敏感性的同时,使得细化结果兼顾保持原图像的连通性和严格单像素宽的特性,从而能够适用于模式识别和目标匹配方面。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。