图像连通元快速标记的方法

文档序号:6572384阅读:204来源:国知局
专利名称:图像连通元快速标记的方法
技术领域
本发明涉及图像分析与识别技术领域,特别涉及一种二值图像的连通元目标的快速标记方法。
背景技术
在大多数的图像分析和识别系统中,连通元标记是一个基本的操作,是后续处理的基础。标记连通元的目的,是为了将二值图像转换成符号图像,即给每个连通元分配一个标签将它们区分开来。
在现有技术中,最常用的方法是将图像按顺序进行处理,并且建立等价类表来保存等价类的相关信息。在第一次扫描中基于相邻象素的值给每个前景(目标)象素分配一个临时标记。如果发生两个相邻的前景象素拥有不同的标记的情况,那么这两个标记视为等价类,并记录到等价类表中。在第二次扫描中,将图像中属于同一等价类的象素用相同的标记表示。
由于连通元标记是图像象素级的处理,相对比较费时,而且需要占用大量内存。随着计算机技术的快速发展,虽然存储空间问题已不再突出,但是,如何以更快的速度对图像进行处理,正是人们期待的。
为此,人们一直致力于连通元标记方法的研究,以提高处理速度和减少存储空间。

发明内容
对大多数的图像识别系统而言,连通元的标记是最耗时的过程之一,尤其是对较大尺寸的图像更是如此。为了减少连通元的标记时间,提高连通元的标记速度,本发明提出了以下技术方案。
1.一种图像连通元的标记方法,包括以下步骤;a.进行初始化工作,即把行标j指向起始行、总游程数K置为0;b.扫描图像第j行数据,得到Zj个游程,并记录为Rk(j)(k=K+1,K+2,…,K+Zj);c.检查Zj是否为0,如果检查结果为是,则跳过步骤d、e,进行步骤f;d.如果步骤c检查结果为否,则记录第j行的每个游程、并将它们标记到对应的树上;e.总游程数量增加Zj个,即由原来的K个总游程数量变为K+Zj个总游程数量;f.行标号j增加1,即由原来的行标号j变为行标号j+1;g.检查行标号是否超出图像高度范围,如果检查结果为否,则返回步骤b;h.如果步骤g检查结果为是,则输出游程和树结构信息。
2.所述的记录第j行的每个游程、并将它们标记到对应的树上,其方法包括以下步骤;a.置当前处理的游程标号k为K+1;b.对游程Rk(j),寻找上一行与其相连接的游程;c.检查是否存在步骤b中所述的相连接的情况,如果检查结果为是,则先进行步骤d后、再跳过步骤e直接进行步骤f;如果检查结果为否,则跳过步骤d后,直接进行步骤e;d.确定并记录与游程Rk(j)相连的上一行的某一个游程为Rk(j)的父游程;e.生成一个新的树,游程Rk(j)作为其根节点;f.将k增加1;g.检查k是否大于K+Zj,如果检查结果为否,则返回步骤b;h.如果步骤g检查结果为是,则转入其它相连的后续步骤。
3.所述的确定并记录与游程Rk(j)相连的上一行的某一个游程为Rk(j)的父游程,其方法包括以下步骤;a.上一行与游程Rk(j)相连的游程,按从左到右顺序记为Rl(j-1)、Rl+1(j-1)、….、Rr(j-1);b.检查上一行是否只有一个相连的游程,即检查Rl(j-1)是否等于Rr(j-1);如果检查结果为是,则跳过步骤c,直接进行步骤d;c.如果步骤b检查结果为否,设置Rm(j-1)(m=l+1,…,r)的根节点的父游程Rl(j-1)对应的树根;所述的Rm(j-1)(m=l+1,…,r),Rm(j-1)和Rl(j-1)属于不同的树;d.确定并记录Rl(j-1)为Rk(j)的父游程;e.转入其它相连的后续步骤。
本发明的有益效果是只用一次扫描就能获得数字图像的外接矩形和象素面积等特性,由于大大地提高了连通元的标记速度,所以对图像处理速度、尤其是对大尺寸的图像处理速度,能明显的得到提高。


附图1是输入输出示意图。
附图2是本发明方法的主流程图,也是权利要求1的流程图。
附图3是第j行游程标记到树上的方法流程图,也是权利要求2的流程图。
附图4是确定记录游程Rk(j)的父游程的方法流程图,也是权利要求3的流程图。
附图5是游程之间的连接类型示意图;其中x是各种一对一的连接类型;y是一对多的连接类型;z是多对一的连接类型。
附图6是实施例的示意图,以一个连通元为例,说明如何对游程进行处理的;图中的A、B、C、D、E、F、G都是游程;j、j+1、j+2、j+3是依顺序连续的行。
附图7是树结构示意图,图中的双线圆圈代表根节点、单线圈代表内部节点或叶节点。
附图7中a部分的树结构,即j部分的树结构,与附图6中的j行扫描相对应;附图7中b部分的树结构,即j+1部分的树结构,与附图6中的j+1行扫描相对应;附图7中c部分的树结构,即j+2部分的树结构,与附图6中的j+2行扫描相对应;附图7d中部分的树结构,即j+3部分的树结构,与附图6中的j+3行扫描相对应。
附图6和附图7应该一一对应起来进行理解。
下面结合附图和具体实施方式
对本发明作进一步的详细说明。
具体实施例方式
标记连通元的目的是为了将二值图像转换成符号图像,即给每个连通元分配一个标签将它们区分开来。在现有技术中,最常用的方法是将图像按顺序进行处理,并且建立等价类表来保存等价类的相关信息。在第一次扫描中基于相邻象素的值给每个前景(目标)象素分配一个临时标记。如果发生两个相邻的前景象素拥有不同的标记的情况,那么这两个标记视为等价类,并记录到等价类表中。在第二次扫描中,将图像中属于同一等价类的象素用相同的标记表示。
本发明的目的在于实现一种基于游程并以树结构表示的快速标记连通元的方法。首先,从图像中逐行提取游程,并把它们的位置间关系信息存储下来。用树来表示当前行的游程与上一行游程间的位置关系,每棵树就对应一个连通元,图1是本方法的输入输出示意图。该方法只需一次扫描就可以获得连通元的外接矩形框和象素总数等有用信息。
下面,结合图进行描述。
首先对图像,按从上到下和从左到右的顺序进行扫描,在每一行中,寻找且记录每个游程。
游程定义为同一行中左右连续相邻的前景(也称目标)象素点的集合。我们用一个五元组(k,yk,sk,tk,pk)来表示一个游程Rk(y)k表示游程在图像中的序列号;yk 表示游程的行坐标;sk 表示游程起始点的列坐标;tk 表示游程终止点的列坐标;pk 该游程在上一行的父游程。
每个连通元内的游程之间的关系用树结构来表示。每个游程对应着树中的一个节点,如果当前行的一个游程与上一行的一个游程相连通,那么这两个游程在树中对应的节点相连。游程间的连通关系定义如下定义假设Rk(y)是第y行的一个游程。Rm(y-1)是第y-1行的游程,如果它们满足下列条件中的任意一个,那么我们称Rk(y)与Rm(y-1)是连通的。
(1)sk-n≤sm≤tk(2)sk≤tm≤tk+n(3)sm-n≤sk≤tm(4)sm≤tk≤tm+n对于8连通的情况n=1;而4连通的情况n=0。
如果Rk(y)与Rm(y-1)是连通的,则称Rm(y-1)是Rk(y)的父游程,或称Rk(y)是Rm(y-1)的子游程。
当一个新的游程产生时,将它的起始点和终止点坐标与上一行的游程相比较,判断是否与上一行的游程相连通。两个相邻行(当前行与上一行)游程之间的关系可以总结为三种类型,即一对一,一对多和多对一共三种类型,如图5中的上图、中图、下图所示。在一对一的类型中,当前行有一个游程与上一行的一个游程相连通;在一对多的类型中,当前行有多个游程与上一行的一个游程相连通;在多对一的类型中,当前行有一个游程与上一行的多个游程相连通。
如果一个游程在上一行中没有找到与之相连通的游程,那么这个游程就作为树的根节点。这棵树对应一个新的连通元。如果一个游程在上一行中找到与之相连通的游程,这个游程就作为上一行中与之相连通的游程的子节点。在一对一类型中,当前游程是上一行中相连游程的唯一子节点,而在一对多的类型中,上一行的对应游程在当前行有多个相连通的游程,所以有多个子节点。
如果多对一的类型出现,也即上一行中有多个游程与当前一个游程相连,那么必须做特别的处理。我们首先观察上一行中与之相连通的所有游程是否属于不同的树。如果是,应将这些不同的树合并。本方法中,这种处理非常简单,只需把包含最左边节点的树的根节点予以保留,而其他树的根节点合并为保留的根节点的子节点。基于上述处理,每棵树只对应于图像中的一个连通元。
为了更好的理解这个方法,在以下实施例中进行更详细的描述。
实施例一。
现结合图6、图7,进行进一步的说明。图6和图7的内容,应该一一对照起来看。
当扫描进行到第j行时,找到了游程A,这个游程是一棵新树的根节点,如图7中的(a)部分所示。
当扫描到第j+1行时,找到了游程B和C,如图7中的(b)部分所示,B与A连接,所以A是B的父节点,而C是另一棵新树的根节点。继续扫描至第j+2行时,如图7中的(c)部分所示,找到游程D、E和F,D和E与B连接。因此,它们是B的子节点,F与C相连接,所以F是C的子节点。当扫描至第j+3行时,找到游程G,因为E和F都与G连接,G作为最左边游程E的子节点。此外,我们必须检查E和F是否属于同一棵树。如果他们属于不同的树,那么必须把他们合并起来。在这里,A是E的根,C是F的根。因此,这两棵树需合并起来。其中一棵树的根节点变为内部节点,成为另一棵树的子节点。如图7中的(d)部分所示,游程C为A的子节点。
当整幅图像扫描完毕后,所有的游程都记录下来了,每棵树对应一个连通元。根据一棵树,我们可以得到对应的那个连通元的所有信息,如连通元外接矩形的宽、高和连通元的象素总数等。
对于一个连通元Cn,所有属于Cn的游程的序号用集合Ψn表示。Cn的外接矩形的左上角坐标和右下角坐标分别用(xn(l),yn(t))和(xn(r),yn(b))表示,它们的坐标值可由下面的计算得到xn(l)=mini∈Ψnsi]]>yn(t)=mini∈Ψnyi]]>xn(r)=maxi∈Ψnti]]>yn(b)=maxi∈Ψnyi]]>其中min表示求最小值,max表示求最大值。该连通元外接矩形的宽和高分别为宽xn(r)-xn(l)高yn(b)-yn(t)该连通元中的象素总数可以由下式直接计算得到Σi∈Ψn(ti-si+1)]]>
权利要求
1.一种图像连通元的标记方法,包括以下步骤;a.进行初始化工作,即把行标j指向起始行、总游程数K置为0;b.扫描图像第j行数据,得到Zj个游程,并记录为Rk(j)(k=K+1,K+2,…,K+Zj);c.检查Zj是否为0,如果检查结果为是,则跳过步骤d、e,进行步骤f;d.如果步骤c检查结果为否,则记录第j行的每个游程、并将它们标记到对应的树上;e.总游程数量增加Zj个,即由原来的K个总游程数量变为K+Zj个总游程数量;f.行标号j增加1,即由原来的行标号j变为行标号j+1;g.检查行标号是否超出图像高度范围,如果检查结果为否,则返回步骤b;h.如果步骤g检查结果为是,则输出游程和树结构信息。
2.根据权利要求1所述的一种图像连通元的标记方法,所述的记录第j行的每个游程、并将它们标记到对应的树上,其方法包括以下步骤;a.置当前处理的游程标号k为K+1;b.对游程Rk(j),寻找上一行与其相连接的游程;c.检查是否存在步骤b中所述的相连接的情况,如果检查结果为是,则先进行步骤d后、再跳过步骤e直接进行步骤f;如果检查结果为否,则跳过步骤d后,直接进行步骤e;d.确定并记录与游程Rk(j)相连的上一行的某一个游程为Rk(j)的父游程;e.生成一个新的树,游程Rk(j)作为其根节点;f.将k增加1;g.检查k是否大于K+Zj,如果检查结果为否,则返回步骤b;h.如果步骤g检查结果为是,则转入其它相连的后续步骤。
3.根据权利要求2所述的一种图像连通元的标记方法,所述的确定并记录与游程Rk(j)相连的上一行的某一个游程为Rk(j)的父游程,其方法包括以下步骤;a.上一行与游程Rk(j)相连的游程,按从左到右顺序记为Rl(j-1)、Rl+1(j-1)、….、Rr(j-1);b.检查上一行是否只有一个相连的游程,即检查Rl(j-1)是否等于Rr(j-1);如果检查结果为是,则跳过步骤c,直接进行步骤d;c.如果步骤b检查结果为否,设置Rm(j-1)(m=l+1,…,r)的根节点的父游程为Rl(j-1)对应的树根;所述的Rm(j-1)(m=l+1,…,r),Rm(j-1)和Rl(j-1)属于不同的树;d.确定并记录Rl(j-1)为Rk(j)的父游程;e.转入其它相连的后续步骤。
全文摘要
本发明涉及图像技术领域,公开了一种二值图像的连通元目标的快速标记方法。步骤是a.进行初始化工作,即把行标j指向起始行、总游程数K置为0;b.扫描图像第j行数据,得到Zj个游程,并记录;c.检查Zj是否为0,如果为是,则跳过步骤d、e,进行步骤f;d.如果步骤c检查为否,则记录第j行的每个游程、并标记到对应的树上;e.总游程数量增加Zj个;f.行标号j增加1;g.检查行标号是否超出图像高度范围,结果为否,则返回步骤b;h.如果步骤g检查结果为是,则输出游程和树结构信息。有益效果是由于只用一次扫描就能获得数字图像的外接矩形和象素面积等特性,大大地提高了连通元的标记速度,所以对图像处理速度能明显的得到提高。
文档编号G06K9/20GK101042734SQ200710039540
公开日2007年9月26日 申请日期2007年4月17日 优先权日2007年4月17日
发明者吕岳 申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1