二值图像快速连通区域计算方法技术

技术编号:17781109 阅读:85 留言:0更新日期:2018-04-22 10:24
本发明专利技术涉及二值图像快速连通区域计算方法,将待测目标图像按计算机的CPU核心数分割成N份,N为计算机CPU的核心数;分别计算每一份目标图像中的连通区域个数并计为M;对每一个连通区域的端点坐标进行标记并记录其坐标点,计算每一个连通区域的坐标点,将端点坐标点相同或相近的连通区域合并成一个连通区域,将合并得到的连通区域个数计为P,未合并的连通区域个数计为S,则原目标图像中连通区域的总数为P+S。本发明专利技术通过运用计算机的多核和编程的多线程技术,可以将计算时间缩短为原来的N分之一。

【技术实现步骤摘要】
二值图像快速连通区域计算方法
本专利技术涉及图像处理
,具体涉及一种二值图像快速连通区域计算方法。
技术介绍
连通分量标记(或者称连通分量分析,连通区域标记)是图论应用中的一种算法,给二值图像中的每个连通区域标上一个特定的标号。该算法可用来对图像的目标进行定位和计数。连通分量标记通常在计算机视觉领域中对二值图像的连通区域进行检测,也可以处理彩色图像和更高维的数据。当将其集成到图像识别系统或者是人机交互系统是,该算法也起到重要作用。现在在生产环境中时用的二值图像连通域的计算主要有两种方法,两次扫描法(two-passalgorithm)和种子填充法(SeedFilling)。两次扫描法(two-passalgorithm),算法的大致流程为:从左往右从上到下扫描图像,背景像素保持0不变,遇到1值时,分析它的8邻域(只考虑已被扫描的的像素点,即左边、左上、上和右上这四个方向的像素值)。1.如果这四个方向的值都是0,那么该位置就创建一个新的标号(在原标号上加1);2.如果这四个方向的非0值(即标号)都一样,那么该位置标号就是其领域的非0标号;3.如果这四个方向的非0值有两个不同的标号,那么该位置标号就选其中之一,并记录这两个不同的标号(因为这两个标号是连通的,故视为等同的标号);该算法主要存在的问题是,虽然算法简单易行,但是需要扫描一幅图像两次。算法的时间复杂度较高。子填充法(SeedFilling),算法的大致流程为:选取一个前景像素点作为种子,然后根据连通区域的两个基本条件(像素值相同、位置相邻)将与种子相邻的前景像素合并到同一个像素集合中,最后得到的该像素集合则为一个连通区域。下面给出基于种子填充法的连通区域分析方法:1.扫描图像,直到当前像素点不为0:a、将此像素点作为种子(像素位置),并赋予其一个label,然后将该种子相邻的所有前景像素都压入栈中;b、弹出栈顶像素,赋予其相同的label,然后再将与该栈顶像素相邻的所有前景像素都压入栈中;c、重复b步骤,直到栈为空;此时,便找到了图像B中的一个连通区域,该区域内的像素值被标记为label;2.重复第1步,直到扫描结束;就可以得到图像中所有的连通区域。该算法主要存在的问题是,在时间复杂度上有所提高,但是频繁的栈操作会影响机器的性能。在实时的序列图像处理中,当视频尺寸过大时,实时处理非常的困难。或者处理的时候,程序中栈操作过于频繁,影响机器的性能,甚至有栈溢出的危险。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种二值图像快速连通区域计算方法,提高处理的速度,使能够实时的处理至少720p、25fps的视频,降低进程栈的使用频率,从而使程序更加顺畅。本专利技术的目的是通过以下技术方案来实现的:二值图像快速连通区域计算方法,包括以下步骤:S01:分割,将待测目标图像按水平方向或垂直方向,分割成N份;S02:计算,分别计算每一份目标图像中的连通区域个数并计为M;S03:标记,对每一个连通区域的端点坐标进行标记并记录其坐标点;S04:合并,计算每一个连通区域的坐标点,将端点坐标点相同或相近的连通区域合并成一个连通区域,将合并得到的连通区域个数计为P,未合并的连通区域个数计为S,则原目标图像中连通区域的总数为P+S。优选的,所述N的取值为计算机CPU的核数;其原理是利用计算机的多核和编程的多线程技术,可以将计算时间缩短为原来的若干分之一。优选的,所述步骤S01中待测目标图像按水平方向或垂直方向,平均分割成N份。按照水平或垂直方向分割所得的图像边界点的坐标整齐,可以使得连通区域合并计算的步骤中变得更加简单,平均分配可以使得计算机在处理每一份图像的时间相等,从而在整体上节约了计算时间。按水平方向进行分割时,同一条切割线上的所有端点纵坐标相同,反之,按垂直方向进行切割时,同一切割线上的横坐标相同,根据这一特点可以判断出改端点是在哪一个图像上,如果量个坐标点完全相同或基本相同但存在细微误差,则表示该两个端点属于同一个连通区域,则对该两个连区域相互合并,以3个连通区域为例说明,连通区域A、连通区域B、连通区域C,如果连通区域A、连通区域B存在坐标点相同或相近的端点时,则认为连通区域A和连通区域B属于同一个连通区域,同时若连通区域C、连通区域B存在坐标点相同或相近的端点,则表示连通区域B、连通区域C属于同一个连通区域,从而可以推导出连通区域A、连通区域B、连通区域C三者属于同一个连通区域。优选的,所述步骤S02中计算每一份连通区域的方法采用两次扫描法或子填充法,也就是说对于切分后的单个图像,依然采用传统方法,然而鉴于每一份图像变成了原来图像的N分之一,所以在处理时间上,也变成了原来的N分之一,从而在整体上将时间缩短为原来的N分之一,加快了计算速度,同时每一份图的处理变得更加简单,从而解决了栈溢出的问题。优选的,所述步骤S01将待测目标图像分成N份以后,对每一份图像依次进行编号,若待测目标图像按水平方向分割则由上至下或由下至上依次编号;若待测目标按垂直方向进行分割则从左至右或从右至左依次进行编号。优选的,所述每一份图像中连通区域端点坐标用K(X,Y)表示,其中K表示图像编号,X、Y分别表示横坐标和纵坐标。优选的,所述坐标点是指待测目标图像中像素点的值,除了利用像素点的特性进行坐标点标记以外,还可以采取用户自定义的方式确定图像的坐标系。优选的,所述端点坐标相近是指相邻两份图像两端点坐标的X和Y的值误差分别不超过一个像素点单位,其原因在于连通区域是指相邻像素点彼此连通的区域,因此当两个端点坐标值超过一个像素点时则表示这两个端点之间存在“隔离带”,即这两个端点所在的连通区域并非彼此连通的区域。优选的,所述端点坐标是指连通区域分布在分割线上的端点坐标,连通区域本身具备端点然而只有在分割时分布在分割线上的端点才是本方案采集的端点,其余部位的端点坐标本方案不采集,采集的依据是根据分割线的坐标值,例如图像水平分割,则与水平分割线纵坐标相同的点全部采集,其余点则不采集。优选的,所述分割线的线宽宽度不超过一个像素点单位,同理的,当分割线的线宽超过一个像素点值,则有可能会将本身不连通的区域误认为是连通的区域,因此在进行图像分割时,务必保证分割处图像的边沿丢失尺寸不超过1个像素点。本专利技术的有益效果是:和传统的计算方法相比较,本专利技术的优势在于将待测图像按计算机的核心数分割相应的分数,运用计算机的多核和编程的多线程技术,将每一幅图多核同时进行处理,可以将计算时间缩短为原来的若干分之一,同时也降低进程栈的使用频率,从而使程序更加顺畅。附图说明图1为本专利技术的流程图;图2为实施例1待测目标图像未分割前图像;图3为实施例1待测目标图像分割后编号为1的图像;图4为实施例1待测目标图像分割后编号为2的图像。具体实施方式下面结合附图1-4和具体实施例进一步详细描述本专利技术的技术方案,但本专利技术的保护范围不局限于以下所述。实施例二值图像快速连通区域计算方法,本实施例以双核计算机为例进行说明,即计算机的CPU核数为双核,同样的选择将待测目标图像分割成两份,如图2-4,图2是待测目标图像,图3和图4分别是分割以后的图样,在本实施例中分割方向选择的是水平方向分割,分割线的线宽像素点选择为1。图像编号选择由本文档来自技高网
...
二值图像快速连通区域计算方法

【技术保护点】
二值图像快速连通区域计算方法,其特征在于包括以下步骤:S01:分割,将待测目标图像分割成N份;S02:计算,分别计算每一份目标图像中的连通区域个数并计为M;S03:标记,对每一个连通区域的端点坐标进行标记并记录其坐标点;S04:合并,计算每一个连通区域的坐标点,将端点坐标点相同或相近的连通区域合并成一个连通区域,将合并得到的连通区域个数计为P,未合并的连通区域个数计为S,则原目标图像中连通区域的总数为P+S。

【技术特征摘要】
1.二值图像快速连通区域计算方法,其特征在于包括以下步骤:S01:分割,将待测目标图像分割成N份;S02:计算,分别计算每一份目标图像中的连通区域个数并计为M;S03:标记,对每一个连通区域的端点坐标进行标记并记录其坐标点;S04:合并,计算每一个连通区域的坐标点,将端点坐标点相同或相近的连通区域合并成一个连通区域,将合并得到的连通区域个数计为P,未合并的连通区域个数计为S,则原目标图像中连通区域的总数为P+S。2.根据权利要求1所述的二值图像快速连通区域计算方法,其特征在于,所述N的取值为计算机CPU的核数。3.根据权利要求2所述的二值图像快速连通区域计算方法,其特征在于,所述步骤S01中待测目标图像按水平方向或垂直方向,平均分割成N份。4.根据权利要求1所述的二值图像快速连通区域计算方法,其特征在于,所述步骤S02中计算每一份连通区域的方法采用两次扫描法或子填充法。5.根据权利要求1所述的二值图像快速连通区域计算方法,其特征在...

【专利技术属性】
技术研发人员:王代东刘盾颜涛
申请(专利权)人:成都华栖云科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1