本发明专利技术公开了一种图像连通区域快速检测方法,该方法首先将图像进行二值化处理,得到二值图像,将连通区标记二维数组b、连通区点数记录数组d、连通区合并标记数组t全部清0;然后从左到右、从上到下逐点扫描图像像素点p,当该点不是白色像素点则图像扫描完毕,将连通区标记相同的连通区合并,否则继续对该点所属连通区进行判断并标记。本发明专利技术方法与其他同类算法相比,针对像素点的4个邻域做出细致考虑,引入了连通区标记二维数组b、连通区点数记录数组d和连通区合并标记数组t,有效降低了图像的扫描次数,可在图像扫描完毕后,将需要合并的连通区的序号标记一次性修改,并且逻辑简单,容易实现,大大提升了图像连通检测速度,实现实时性。
【技术实现步骤摘要】
本专利技术涉及数字图像处理,具体指一种图像连通区域快速检测方法。
技术介绍
数字图像处理被广泛应用于模式识别、安全监控、医疗成像等领域。图像处理的研究方向非常广泛,集中了各类先进的理论与算法,包括图像增强、噪声去除、数据压缩与复原、超分辨率重建、图像匹配与运动补偿等。在工程应用中,对很多图像的分析都会转换为二值图像进行,二值化加数学形态学方法能解决很多基于图像分析的目标提取与模式识别问题。其中,连通区域检测是二值图像分析的重要方法之一。通过对二值图像的连通性能检测,可以得到连通区域的数量、面积、分布特征等重要信息,可广泛应用于目标形状分析与模式识别中。在图像处理过程中,为了满足实时性要求,处理速度是一个重要的评判指标。图像连通检测虽原理简单,技术难度不高,但绝大部分连通检测算法计算复杂度高,需要进行多次扫描,严重影响处理速度,难以实现实时处理。已有的连通区域检测算法可分为两类:一类是局部邻域算法,这类算法有多种不同形式,基本思想是从局部到整体,要逐个检查每个连通成分,对每个连通区都要先确定一个“种子点”,再向周围邻域扩展并填入标记;另一类是“分而治之”算法,基本思想是从整体到局部,先确定不同的连通成分,再对每一个连通区用区域填充方法填入标记。通常使用的连通区域检测算法有递归法、顺序法和游程标记法等。递归法需要大量的存储空间,对于大尺寸的图像,不仅耗费内存空间,运行速度也明显降低;顺序法至少需要扫描图像两次,处理过程中使用等价表来解决标记冲突问题,最终得到的标记图顺序杂乱,采用并行运算时,合并区域则会非常繁琐;游程标记法的特点是存储空间小、易于并行处理,但处理过程仍然需要两次扫描并且根据等价表来解决标记冲突。此外,游程标记法一般适用于横向连接点较多的情况,如果横向存在很多单像素点,则很不适用。所以,图像连通检测的关键问题是如何制定算法策略,不受任何连通形状的限制,还尽可能减少扫描次数,提高运行速度,满足实时性要求。
技术实现思路
针对现有技术存在的上述问题,本专利技术提供了一种图像连通区域快速检测方法,解决了一般连通检测算法计算复杂度高,需要进行多次扫描,严重影响处理速度,难以实现实时处理问题。为实现上述目的,本专利技术采用如下技术方案:一种图像连通区域快速检测方法,包括如下步骤:S1:将图像进行二值化处理,得到二值图像;初始化:将连通区标记二维数组b、连通区点数记录数组d、连通区合并标记数组t全部清0,打开二值图像,以白色像素点为检测目标;S2:按从左到右、从上到下逐点扫描图像像素点p,判断像素点p是否为白色像素点;当像素点p不是白色像素点则转向步骤S6,否则执行下一步;S3:对像素点p所属连通区进行判断并标记:从连通区标记二维数组b中取图像像素点p的左、左上、上和右上四个邻近点的连通区序号值,分别记为x1、x2、x3、x4,如果x1、x2、x3、x4中某些点超出边界无法取得,则将其设为0;另设变量x,定义其取值规则为:若x2、x3、x4均为0,则x取0,否则x按顺序取第一个非0值;在获得x的值后,按以下步骤进行:a)若x=0,且x1=0,则图像像素点p为新的连通区,按照k=k+1的序号累加方式得到一个新的连通区序号k,根据图像像素点p的位置,将新的连通区序号k记录在连通区序号标记数组b中,并将连通区点数记录数组d中新的连通区序号k对应的元素加1,即d[k]=d[k]+1;然后,转向步骤S3;b)若x=0,且x1≠0,则图像像素点p不是新的连通区,p点属于x1的连通区,故在连通区标记二维数组b中将图像像素点p的连通区序号标记为x1,并修改连通区点数记录数组d,将连通区点数记录数组d中连通区序号标记为x1对应的元素加1,即d[x1]=d[x1]+1;然后,转向步骤S6;c)若x3=0,x4≠0,且x1、x2存在非0值时,图像像素点p承担了将两个连通区连接起来的功能,取得x4的值以及x1、x2中的第一个非0值,共两个值,然后转向步骤S4;d)若上面条件均不满足,转向步骤S5;S4:根据连通区合并标记数组t,检查步骤c)中所取两个值代表的连通区是否已合并,若没合并,则在连通区合并标记数组t中将这两个连通区序号作合并标记,标记的方法是,若i、j两个连通区需要合并,就改写t[i]=j或者t[j]=i;S5:在连通区标记二维数组b中将图像像素点p的连通区序号标记为x,并将x域的点数加1,即d[x]=d[x]+1;S6:检查图像是否扫描完毕,若还没扫描完毕转向步骤S2,若已扫描完毕,则执行下面步骤S7;S7:根据连通区合并标记数组t,对前面步骤得到的连通区标记二维数组b和连通区点数记录数组d进行修改,实现连通区的合并处理,扫描连通区标记二维数组b的非0点,设其序号的值为j,j为连通区标记二维数组b的非0点的连通区序号(也即连通区标记二维数组b的元素值),根据t[j]取值做如下处理:a)若t[j]=0,说明以j为连通区序号的点构成了一个单独的域,不需要与任何其他域进行合并;b)若t[j]≠0,说明以j为序号标记值的域与以t[j]为标记值的域是连通的,应进行合并,将所有连通序号标记为j的点修改为t[j],同时修改连通区点数数组d,d[t[j]]=d[j]+d[t[j]],然后将d[j]清0;S8:依据最终的连通区标记二维数组b和连通区点数记录数组d来确定连通区数量、点数和位置分布信息,并根据这些信息实现图像分割,得到连通区的外接矩形。本专利技术提供的一种图像连通区域快速检测方法,不仅降低了图像的扫描次数,加快了速度,而且逻辑简单,容易实现。对图像采用从左到右,从上到下的扫描方式,因此对任意白色像素点的连通性判断依赖于其左边一个和上面三个像素点是否存在白色像素点,使用连通区序号标记二维数组b进行记录。由于对图像采用顺序扫描方式,对某些复杂的连通区域,必然会出现刚开始是若干个独立的连通区,在后续扫描中出现公共连接点,从而需要合并的情况。为此,在对二值图像的4邻域像素扫描的基础上,引入了连通区合并标记数组t,将可以进行合并的两个或两个以上连通区标记出来,在图像扫描完毕后一次性完成修改,避免了大多数算法要进行多次修改的弊端,大大提升了图像连通检测速度,也是本专利技术的重要价值之一。最后,根据修改后的连通区标记二维数组b的值确定连通区的数量、每个连通区包含的点数、位置分布等信息,得到每个连通区的外接矩形坐标。这种新型的图像连通检测快速算法可应用于图像分割,噪声去除、超分辨率重建、图像匹配与运动补偿、目标形状分析与模式识别等领域。相对于现有技术,本专利技术具有如下优点:本专利技术提供的图像连通区域快速检测方法与其他同类算法相比,针对像素点的4个邻域做出细致考虑,引入了连通区标记二维数组b、连通区点数记录数组d和连通区合并标记数组t,有效降低了图像的扫描次数,可在图像扫描完毕后,将需要合并的连通区的序号标记一次性修改,并且逻辑简单,容易实现,大大提升了图像连通检测速度,实现实时性。附图说明图1为本专利技术图像连通区域快速检测方法的实本文档来自技高网...
【技术保护点】
一种图像连通区域快速检测方法,其特征在于,包括如下步骤:S1: 将图像进行二值化处理,得到二值图像;初始化:将连通区标记二维数组b、连通区点数记录数组d、连通区合并标记数组t全部清0,打开二值图像,以白色像素点为检测目标;S2:按从左到右、从上到下逐点扫描图像像素点p,判断像素点p是否为白色像素点;当像素点p不是白色像素点则转向步骤S6,否则执行下一步;S3: 对像素点p所属连通区进行判断并标记:从连通区标记二维数组b中取图像像素点p的左、左上、上和右上四个邻近点的连通区序号值,分别记为x1、x2、x3、x4,如果x1、x2、x3、x4中某些点超出边界无法取得,则将其设为0;另设变量x,定义其取值规则为:若x2、x3、x4均为0,则x取0,否则x按顺序取第一个非0值;在获得x的值后,按以下步骤进行:a)若x=0,且x1=0,则图像像素点p为新的连通区,按照k=k+1的序号累加方式得到一个新的连通区序号k,根据图像像素点p的位置,将新的连通区序号k记录在连通区序号标记数组b中,并将连通区点数记录数组d中新的连通区序号k对应的元素加1,即d[k]=d[k]+1;然后,转向步骤S3;b)若x=0,且x1≠0,则图像像素点p不是新的连通区,p点属于x1的连通区,故在连通区标记二维数组b中将图像像素点p的连通区序号标记为x1,并修改连通区点数记录数组d,将连通区点数记录数组d中连通区序号标记为x1对应的元素加1,即d[x1]=d[x1]+1;然后,转向步骤S6;c)若x3=0,x4≠0,且x1、x2存在非0值时,图像像素点p承担了将两个连通区连接起来的功能,取得x4的值以及x1、x2中的第一个非0值,共两个值,然后转向步骤S4;d)若上面条件均不满足,转向步骤S5;S4:根据连通区合并标记数组t,检查步骤c)中所取两个值代表的连通区是否已合并,若没合并,则在连通区合并标记数组t中将这两个连通区序号作合并标记,标记的方法是,若i、j两个连通区需要合并,就改写t[i]=j或者t[j]=i;S5:在连通区标记二维数组b中将图像像素点p的连通区序号标记为x,并将x域的点数加1,即d[x]=d[x]+1;S6:检查图像是否扫描完毕,若还没扫描完毕转向步骤S2,若已扫描完毕,则执行下面步骤S7;S7:根据连通区合并标记数组t,对前面步骤得到的连通区标记二维数组b和连通区点数记录数组d进行修改,实现连通区的合并处理,扫描连通区标记二维数组b的非0点,设其序号的值为j,j为连通区标记二维数组b的非0点的连通区序号,根据t[j]取值做如下处理:a)若t[j]=0,说明以j为连通区序号的点构成了一个单独的域,不需要与任何其他域进行合并;b)若t[j]≠0,说明以j为序号标记值的域与以t[j]为标记值的域是连通的,应进行合并,将所有连通序号标记为j的点修改为t[j],同时修改连通区点数数组d,d[t[j]]= d[j]+ d[t[j]],然后将d[j]清0;S8:依据最终的连通区标记二维数组b和连通区点数记录数组d来确定连通区数量、点数和位置分布信息,并根据这些信息实现图像分割,得到连通区的外接矩形。...
【技术特征摘要】
1.一种图像连通区域快速检测方法,其特征在于,包括如下步骤:
S1:将图像进行二值化处理,得到二值图像;
初始化:将连通区标记二维数组b、连通区点数记录数组d、连通区合并标记数组t全部清0,打开二值图像,以白色像素点为检测目标;
S2:按从左到右、从上到下逐点扫描图像像素点p,判断像素点p是否为白色像素点;当像素点p不是白色像素点则转向步骤S6,否则执行下一步;
S3:对像素点p所属连通区进行判断并标记:从连通区标记二维数组b中取图像像素点p的左、左上、上和右上四个邻近点的连通区序号值,分别记为x1、x2、x3、x4,如果x1、x2、x3、x4中某些点超出边界无法取得,则将其设为0;
另设变量x,定义其取值规则为:若x2、x3、x4均为0,则x取0,否则x按顺序取第一个非0值;在获得x的值后,按以下步骤进行:
a)若x=0,且x1=0,则图像像素点p为新的连通区,按照k=k+1的序号累加方式得到一个新的连通区序号k,根据图像像素点p的位置,将新的连通区序号k记录在连通区序号标记数组b中,并将连通区点数记录数组d中新的连通区序号k对应的元素加1,即d[k]=d[k]+1;然后,转向步骤S3;
b)若x=0,且x1≠0,则图像像素点p不是新的连通区,p点属于x1的连通区,故在连通区标记二维数组b中将图像像素点p的连通区序号标记为x1,并修改连通区点数记录数组d,将连通区点数记录数组d中连通区序号标记为x1对应的元素加1,即d[x1]=d[x1]+1;然后,转向步骤S6;
c)若x3=0,x4≠0,且x1、x2存在...
【专利技术属性】
技术研发人员:董海舟,毛玉星,赵本江,黄远择,
申请(专利权)人:重庆飞洲光电技术研究院,
类型:发明
国别省市:重庆;85
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。