一种扫描合并图像中的连通区域的方法和装置的制作方法

文档序号:6483719阅读:155来源:国知局
专利名称:一种扫描合并图像中的连通区域的方法和装置的制作方法
技术领域
本发明涉及智能视频监控领域,特别是涉及智能视频监控系统硬件化中的 一种扫描合并图^象中的连通区域的方法和装置。
背景技术
智能视频监控系统的核心内容是对场景中的运动目标进行检测、跟踪和识
运动目标的外形。运动目标的检测是智能视频监控的第一步,也是后续跟踪和 识别应用的基础,其中检测的速度和精度对整个智能视频监控来说非常重要。 而在系统硬件化的过程中,运动目标检测算法还必须考虑到硬件实现的特点, 充分利用硬件的并行化优势,以便设计出功能完善并且功耗较低的硬件产品。 目前的智能视频监控一般都假设监控设备的位置和方向固定,即监控场景 的背景图像是相对固定的。因此从视频序列中检测出运动目标的一般方法是利 用前景减去背景,然后进行二值化,就可以得到运动目标在图像中的分布区域。 但二值化后仅能得到所有运动目标的区域,为了将不同的运动目标分离开,并 得到目标的外形,还必须将二值图像中连通的区域进行合并,合并的算法在整 个目标检测中最复杂,运算量也最大。
在个人电脑(PC)的平台上,连通区域合并算法的一般流程是首先对 整幅二值化图像的每行进行第一次扫描,根据四连通或者八连通的特点来建立 图像上每个像素和已经扫描过的邻域像素的对应关系;然后在第一次扫描的基 础上将建立了对应关系的像素合并为彼此独立的目标。这种基于PC,利用纯 软件来实现的合并算法的前提是整幅图像被放置在内存中,图像内容可以随 意的进行访问,同时还可以分配较大的临时空间来存放第一次扫描的结果。但 在算法硬件化(比如利用集成电路IC来实现)的过程中,上述的条件都很难 满足。首先在硬件系统中,图像数据都是一行行的输入进来,而不是整体存放在图像緩存中。而且硬件中存储量有限,不可能分配较大的空间来存放临时数 据。对緩存的访问也不可能是随意的,因为大量的访问緩存会较大的影响硬件 代码的运行速度,导致功耗升高。同时也提高了对硬件的要求,造成开发成本 的提高。
因此,如何提供一种可以在硬件中运行的高效的二值化图像连通域合并方 法,是有待解决的问题。

发明内容
本发明实施例的目的是提供一种扫描合并图像中的连通区域的方法和装 置,只需要一次扫描就能够完成合并,而且不需要分配过多的临时数据緩存, 解决现有技术不适合在硬件环境中运行的技术问题。
为了实现上述目的, 一方面,提供了一种扫描合并图像中的连通区域的方
法,包括如下步骤
步骤一,扫描图像的当前行,获得所述当前行中的前景点的连通段;
步骤二,按从左到右的顺序取出当前行中的一个连通段作为当前段,并将 所述当前段与上 一行中的所有连通段按从左到右的顺序进行连通分析;
步骤三,判断在上一行中是否有与所述当前段相通的相通连通段,是则执 行步骤五,否则执行步骤四;
步骤四,为所述当前段分配目标序号,并将所述当前段的位置信息存储到 所述目标序号对应的结构体中,结束所述当前段的处理;
步骤五,按从左到右的顺序取出所有与当前段相通的相通连通段,并确定 当中的第一个相通连通段和非第一相通连通段,将所述当前段以及每个所述非 第 一相通连通段合并到所述第 一个相通连通段,并释放存储所述非第 一相通连 通段的位置信息的结构体,结束所述当前段的处理。
优选地,上述的方法,在所述步骤四和步骤五中,在结束所述当前段的处 理之后,返回步骤二,并且所述步骤二还包括如果所述当前行中的所有连通 段都已经被取出,则将下一行作为当前行,返回步骤一;所述步骤一还包括 如果所述图像的最后一行已经被扫描,则结束流程。
优选地,上述的方法,在所述步骤五中,通过设置结构体的标志位,来释
5放存储所述非第一相通连通段的位置信息的结构体。
优选地,上述的方法中,如果所述标志位的值为O,则所述标志位对应的
结构体无效,该结构体能够被重新分配使用;如果所述标志位的值为l,则所述标志位对应的结构体有效,该结构不能被重新分配使用。
优选地,上述的方法中,在所述步骤一之前还包括,预先设置结构体的总数。
本发明的另一个方面,提供一种扫描合并图像中的连通区域的装置,包括:扫描模块,用于扫描图像的当前行,获得所述当前行中的前景点的连通
段;
分析模块,用于按从左到右的顺序取出当前行中的一个连通段作为当前段,并将所述当前段与上一行中的所有连通段按从左到右的顺序进行连通分析;
判断模块,用于判断在上一行中是否有与所述当前段相通的相通连通段;分配模块,用于在上一行中没有与所述当前段相通的相通连通段的条件下,为所述当前段分配目标序号,并将所述当前段的位置信息存储到所述目标序号对应的结构体中;
合并模块,用于在上一行中有与所述当前段相通的相通连通段的条件下,按从左到右的顺序取出所有与当前段相通的相通连通段,并确定当中的第一个相通连通段和非第一相通连通段,将所述当前段以及每个所述非第一相通连通段合并到所述第一个相通连通段,并释放存储所述非第一相通连通段的位置信息的结构体。
优选地,上述的装置中,所述结构体设置在存储模块上,每个结构体都具有对应的目标序号和标志位。
优选地,上述的装置中,所述标志位的值为0,代表所述标志位对应的结构体无效,能够被重新分配使用;所述标志位的值为1,代表所述标志位对应的结构体有效,不能被重新分配使用。
优选地,上述的装置中,所述上一行中的所有连通段緩存在临时存储空间中。
本发明实施例至少存在以下技术效果1) 对二次扫描方法进行改进,只需要一次扫描就能够完成合并;
2) 设置存储数组和结构体的标志位,使结构体可以循环使用,减少了占用的存储空间;
3) 只需临时存储上一行的连通段,不用緩存整个图像,不需要分配过多的临时数据緩存;
4) 适合在硬件环境中运行。


图1为本发明实施例提供的连通段的示意图2为本发明实施例提供的基于连通段的二次扫描合并算法的流程图;图3为本发明实施例提供的二次扫描算法中段对应的目标序号的示意图;图4为本发明实施例提供的二次扫描算法中记录连通段对应关系的数组;图5为本发明实施例提供的方法的步骤流程图;图6为本发明另一实施例提供的基于段的一次扫描连通域合并流程图;图7为本发明提供的扫描过程的示意图。
具体实施例方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对具体实施例进行详细描述。
本发明实现了 一种可以在硬件中运行的高效二值化图像连通域合并方法。该方法是在普通的基于二次扫描合并算法的基础上改进而来,不再基于像素来进行合并,而是基于行中的连通段来进行合并操作,也不需要将整幅图4象存入緩存,节省了空间,最重要的是只需要进行一次扫描就能够将连通的区域合并,因此可以极大的提高算法在硬件中的运行效率。
(一)首先,先将普通的基于二次扫描合并算法介绍如下
基于二次扫描合并算法是一种基于连通段的扫描方式。
传统的基于连通域分析方法都是基于单个像素来进行分析,速度慢,而且一旦图像大小增加就会导致运算量的成倍增加。为了解决这个问题,基于二次扫描合并算法采用了连通段的思想。所谓连通段即一个扫描行中彼此连通像素
7组成的段,每个段可以用最左边和最右边的像素的列坐标来表示。
图1为本发明实施例提供的连通段的示意图,如图1所示,图中每个方块代表一个点,打剖面线的点为二值化后的背景点,其它点为前景点。每一行中
的连通的前景点组成了连通段,本实施例定义第k行的第L个前景段为S(k, L),并规定起始的行号(也就是k)和列号(也就是L)的序号都为0。图1中第5行有两个连通段S(4,0), S(4,1),其它行的连通段如图中所示。5(4,0)的最左边
和最右边的像素点的列号分别为3和4,即该段可以用线段[3,4]来表示,后续的合并中最左和最右的列号可以用来判断上下两行的两个段是否相邻。? 1入段的优点是,算法可以不受图像大小的影响,因为当图像分别率变大时,段的数量并不会改变,这样就可以保证后续合并的效率。
图2为本发明实施例提供的基于连通段的二次扫描合并算法的流程图,当采用段作为合并的基本单元后,传统的二次扫描的连通域分析算法的流程可以用图2来描述,如图2所示,二次扫描的连通域分析算法包括
步骤201,输入图l象数据;
步骤202,从上到下扫描每一行,得到每行中所有连通的前景段;步骤203,从上到下,依次扫描相邻的两行,判断两行之间哪些前景段是连通的;
步骤204,合并标记不同但是连通的前景段;步骤205,根据不同标记对应的前景段计算各个前景矩形;步骤206,根据大小对所有前景矩形进行排序,将最大的32个矩形输出。其中,步骤202代表了第一次扫描,步骤205代表了第二次扫描。步骤203中,需要在判断连通的同时给段分配标记,如果当前段没有跟上一行中的任何一段连通,那么就为该段分配一个新标记,如果该段和上一行中的若干段都连通,那么就将上一行中连通的最左边的段标记赋给当前段。
步骤204的具体操作是,如果一行中的某段和上一行中的多个段都连通,那么就需要将上一行中标记不同但是连通的段的对应关系记录下来。对应关系可以用 一个数组来保存,因此需要分配临时存储空间。
步骤204的操:作可以由图3来描述,图3中的S(8,0), S(8,l)代表了同一个连通区域,但它们的标记分别为0和1。这就需要将这些连通但不一致的标
8记分别记录下来,保存在图4的数组中。
如图4的数据结构就可以用来记录不同标记但是相连通的段的对应关系,0和1放置在同一行,表示它们是连通区域对应的两个不同标记。其它的类似的标记可以依次放在下面。针对不同的前景图像,该数据结构的长度都是不同的,因此只能给出一个最大值,超过最大值的对应关系将不再存放。为了保证所有的对应关系都被存放,就需要开辟一个较大的临时空间,这在硬件中是比较困难的。而且即使能够分配,由于需要频繁的在硬件中读取临时数据,将会造成运行效率的降低。这是传统二次扫描方法不适合硬件实现的重要原因。(二 )本发明实施例提供的一次扫描方法,是一种基于实时行扫描的合并算法。
从上面(一)的描述可以看出,虽然基于段的思想可以提高算法的运行效率。但是由于需要二次扫描并分配数据緩存,因此不适合在硬件中运行。本发明对二次扫描方法进行改进,只需要一次扫描就能够完成合并,而且不需要分配临时数据緩存。
图5为本发明实施例提供的方法的步骤流程图;如图5,扫描合并图像中的连通区域的方法,包括
步骤501,扫描图像的当前行,获得所述当前行中的前景点的连通段;
步骤502,按从左到右的顺序取出当前行中的一个连通段作为当前段,并将所述当前段与上一行中的所有连通段按从左到右的顺序进行连通分析;
步骤503,判断在上一行中是否有与所述当前段相通的相通连通段,是则执行步骤505,否则执行步骤504;
步骤504,为所述当前段分配目标序号,并将所述当前段的位置信息存储到所述目标序号对应的结构体中,结束所述当前段的处理;
步骤505,按从左到右的顺序取出所有与当前段相通的相通连通段,并确定当中的第一个相通连通段和非第一相通连通段,将所述当前段以及每个所述非第 一相通连通段合并到所述第 一个相通连通段,并释放存储所述非第 一相通连通段的位置信息的结构体,结束所述当前段的处理。
以上是对当前行中一个当前段的处理,扩展到整个图像,则在所述步骤504和步骤505中,在结束所述当前段的处理之后,返回步骤502,并且所述
9步骤502还包括如果所述当前行中的所有连通段都已经被取出,则将下一行 作为当前行,返回步骤501;所述步骤501还包括如果所述图像的最后一行 已经被扫描,则结束流程。
图6为本发明另一实施例提供的基于段的一次扫描连通域合并流程图;图 6相比于图5要更为细化一些,如图6所示,通过一次扫描就实现扫描合并图 像中的连通区域的方法包括
步骤601,依次取出当前行中的段信息;
步骤602,从左到右与上一行中的段进行连通分析;
步骤603,是否有连通段?是则执行步骤605,否则执行步骤604;
步骤604,分配一个新的目标序号给当前段,并将其位置信息存入对应的 目标序号结构体中,返回步骤601;
步骤605,依次取出所有连通段;
步骤606,是第一个连通段吗?是则执行步骤607,否则执行步骤608;
步骤607,将当前l更的目标序号设置为第一个连通^a的目标序号,并将其位 置信息合并第一个连通段的目标序号结构体中,返回步骤601;
步骤608,将其它连通段的位置信息合并到第一个连通段对应的目标序号 结构体中,并将其目标序号设置为第一个连通段的目标序号,返回步骤601。
图6的方法需要一个存放目标信息的结构体数组。从上到下依次取出每行 中的段信息,然后和上面行的所有段进行连通比较。如果没有任何连通段,就 为段分配一个新的目标序号。如果有,那么就依次取出所有的连通段。如果是 第一个连通段,就将当前段的目标序号设置为第一连通段的目标序号,并将其 位置信息合并到第一个连通段的目标序号对应的结构体。如果是其它的连通 段,那么将将这些段的目标序号设置合并到第一个连通段为第一连通段的目 标序号,并将其位置信息合并到第一个连通段的目标序号对应的结构体。
图7为本发明提供的扫描过程的示意图。图7的左边是一个用来存放最后 合并后连通目标位置和标志的结构体数组,每行代表一个目标。结构体有三个 元素,第一个元素是目标的序号,第二个元素是目标的位置,第三个元素是一 个结构体标志位。标志位的作用是表明该结构体是否有效。S("')表示第/行的 第V'段,W都是从O开始计数。《代表结构体数组的第!'个结构体的位置信息。结构体数组的大小可以根据图像中的目标数量事先设定,比如可以设置为
32,超过了数组大小的目标将不再检测。结构体数组占用的空间较小,而且由 于设置了标志位,因此数组中的结构体可以重复使用,这样就可以节省大量存 储空间,便于在硬件中实现。算法运行时,从上到下一行行的进行扫描,因此 数据可以一行行的输入,而不再需要同时将整幅图像输入。当前行中的段只需 要和上一行中的段来进行连通性比较,所以只需要存放上一行的段数据(上一 行的数据在上一次扫描完后存》文起来即可),所需的临时空间非常小。 图7所述的具体合并过程如下
扫描第l行由于是第l行,因此该行中的段不和任何的段连通。所以将 段S(0,0)对应的目标序号设置为o (即图中的s(0,0)…),s(o,i)对应的目标序号
设置为1 (即图中的S(0,1》1 )。同时将S(0力)和S(W)的位置信息分别填入右边数
组中序号为0和1的结构体中,并将标志位都设置为1。
扫描第2行该行中的段^,0)首先和第1行中的段S(0,0)连通,所以首先
将段对应的目标序号设置为S(G,G)对应的目标序号0,然后将该段的位置信息 合并到右边对应目标序号的结构体中。邓,G)接着和第1行中的段S(G,1)连通,
所以将段s(w)也合并到目标序号为0的结构体中,并且将ww)对应的段序号
设置为O。此时目标序号为1的结构体已经无效,因此将其标志位设置为O。 扫描第3行首先扫描到段S(2,0),该段和第2行中的所有段都不连通, 因此将其对应的目标序号设置为2,并将其位置信息存放到右边第三个结构体 中,将结构体的标志为设置为1 。然后扫描到段s(2,1),该段和s(i,o),所以将S(2,1) 对应的目标序号设置为WW)的目标序号,并将其位置信息合并到右边序号为0 的结构体中。
扫描第4行该行中的段邓,0)首先和段5(2,0)连通,和上面扫描类似,将 邓,0)对应的目标序号设置为^,0)的目标序号(2),然后合并到5(2,0)的目标
序号对应的结构体中。s"o)然后和s(U)连通,因此将s""的目标序号对应的
结构体信息合并到S"0)的目标序号(2)对应的结构体中,合并后S""原来 的目标序号对应的结构体变为无效,并且将S(2,1)的目标序号置为S(3》)的目标 序号。
另外,对应以上方法实施例,本发明还提供了一种扫描合并图像中的连通
11区域的装置的实施例,包括
扫描模块,用于扫描图像的当前行,获得所述当前行中的前景点的连通
段;
分析模块,用于按从左到右的顺序取出当前行中的一个连通段作为当前段,并将所述当前段与上一行中的所有连通段按从左到右的顺序进行连通分析;
判断模块,用于判断在上一行中是否有与所述当前段相通的相通连通段;分配模块,用于在上一行中没有与所述当前段相通的相通连通段的条件下,为所述当前段分配目标序号,并将所述当前段的位置信息存储到所述目标序号对应的结构体中;
合并模块,用于在上一行中有与所述当前段相通的相通连通段的条件下,按从左到右的顺序取出所有与当前段相通的相通连通段,并确定当中的第一个相通连通段和非第一相通连通段,将所述当前段以及每个所述非第一相通连通段合并到所述第一个相通连通段,并释放存储所述非第一相通连通段的位置信息的结构体。
其中,所述结构体设置在存储模块上,每个结构体都具有对应的目标序号和标志位。所述标志位的值为O,代表所述标志位对应的结构体无效,能够被重新分配使用;所述标志位的值为1,代表所述标志位对应的结构体有效,不能被重新分配使用。所述上一行中的所有连通段緩存在临时存储空间中。
由上可知,本发明实施例具有以下优势
1) 对二次扫描方法进行改进,只需要一次扫描就能够完成合并;
2) 设置存储数组和结构体的标志位,使结构体可以循环使用,减少了占用的存储空间;
3) 只需临时存储上一行的连通段,不用緩存聱个图像,不需要分配过多的临时数据緩存;
4) 适合在硬件环境中运行。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1. 一种扫描合并图像中的连通区域的方法,其特征在于,包括如下步骤步骤一,扫描图像的当前行,获得所述当前行中的前景点的连通段;步骤二,按从左到右的顺序取出当前行中的一个连通段作为当前段,并将所述当前段与上一行中的所有连通段按从左到右的顺序进行连通分析;步骤三,判断在上一行中是否有与所述当前段相通的相通连通段,是则执行步骤五,否则执行步骤四;步骤四,为所述当前段分配目标序号,并将所述当前段的位置信息存储到所述目标序号对应的结构体中,结束所述当前段的处理;步骤五,按从左到右的顺序取出所有与当前段相通的相通连通段,并确定当中的第一个相通连通段和非第一相通连通段,将所述当前段以及每个所述非第一相通连通段合并到所述第一个相通连通段,并释放存储所述非第一相通连通段的位置信息的结构体,结束所述当前段的处理。
2. 根据权利要求1所述的方法,其特征在于,在所述步骤四和步骤五中,在结束所述当前段的处理之后,返回步骤二,并且所述步骤二还包括如果所述当前行中的所有连通段都已经被取出,则将下一行作为当前行,返回步骤一;所述步骤一还包括如果所述图像的最后一行已经被扫描,则结束流程。
3. 根据权利要求1所述的方法,其特征在于,在所述步骤五中,通过设置结构体的标志位,来释放存储所述非第一相通连通段的位置信息的结构体。
4. 根据权利要求3所述的方法,其特征在于,如果所述标志位的值为O,则所述标志位对应的结构体无效,该结构体能够被重新分配使用;如果所述标志位的值为1,则所述标志位对应的结构体有效,该结构不能被重新分配使用。
5. 根据权利要求4所述的方法,其特征在于,在所述步骤一之前还包括,预先设置结构体的总数。
6. —种扫描合并图像中的连通区域的装置,其特征在于,包括扫描模块,用于扫描图像的当前行,获得所述当前行中的前景点的连通段;分析模块,用于按从左到右的顺序取出当前行中的一个连通段作为当前段,并将所述当前段与上一行中的所有连通段按从左到右的顺序进行连通分析;判断模块,用于判断在上一行中是否有与所述当前段相通的相通连通段;分配模块,用于在上一行中没有与所述当前段相通的相通连通段的条件下,为所述当前段分配目标序号,并将所述当前段的位置信息存储到所述目标序号对应的结构体中;合并模块,用于在上一行中有与所述当前段相通的相通连通段的条件下,按从左到右的顺序取出所有与当前段相通的相通连通段,并确定当中的第一个相通连通段和非第 一相通连通段,将所述当前段以及每个所述非第 一相通连通段合并到所述第一个相通连通段,并释放存储所述非第一相通连通段的位置信息的结构体。
7. 根据权利要求3所述的装置,其特征在于,所述结构体设置在存储模块上,每个结构体都具有对应的目标序号和标志位。
8. 根据权利要求7所述的装置,其特征在于,所述标志位的值为0,代表所述标志位对应的结构体无效,能够被重新分配使用;所述标志位的值为1,代表所述标志位对应的结构体有效,不能被重新分配使用。
9. 根据权利要求6所述的装置,其特征在于,所述上一行中的所有连通段緩存在临时存储空间中。
全文摘要
本发明提供一种扫描合并图像中的连通区域的方法和装置,方法包括步骤一,扫描图像的当前行,获得所述当前行中的连通段;步骤二,取出一个连通段作为当前段,进行连通分析;步骤三,判断在上一行中是否有与所述当前段相通的相通连通段,是则执行步骤五,否则执行步骤四;步骤四,为所述当前段分配目标序号,并将所述当前段的位置信息存储到所述目标序号对应的结构体中;步骤五,确定第一个相通连通段,将所述当前段以及每个非第一相通连通段合并到所述第一个相通连通段,并释放存储非第一相通连通段的结构体。本发明只需要一次扫描就能够完成合并,而且不需要分配过多的临时数据缓存,解决现有技术不适合在硬件环境中运行的技术问题。
文档编号G06T7/20GK101499169SQ200910077480
公开日2009年8月5日 申请日期2009年2月13日 优先权日2009年2月13日
发明者谢东海 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1