掌桥专利:专业的专利平台
掌桥专利
首页

一种连通分量的提取方法及终端

文献发布时间:2024-04-18 19:58:30


一种连通分量的提取方法及终端

技术领域

本发明涉及图像处理技术领域,尤其涉及一种连通分量的提取方法及终端。

背景技术

图像处理中,特别是在自动图像分析,通常会用到形态学中提取连通分量方法,通常做法为先对图像进行阈值分割,得到二值化图像,再计算二值化图像中元素的连通区域,分别给出不同标记,一副图像中可能有多个连通区域,区域之间不连通,对每个区域进行标记分量,可以称为提取连通分量。后续只要根据的区域所属标记就能知道的对应区域,从而对每个区域进行单独分析处理。从二值图像中提取连通分量是许多自动图像分析应用的核心。基于连通分量扩展出很多高阶算法。

现阶段提取连通分量的主要方法是使用迭代方法完成,迭代次数决定速度,且由于后续迭代依赖前面结果,一般使用单线程处理,处理速度较慢,对于有实时处理需求的场景应用难度大。

发明内容

本发明所要解决的技术问题是:提供一种连通分量的提取方法及终端,能够有效提高计算效率。

为了解决上述技术问题,本发明采用的技术方案为:

一种连通分量的提取方法,包括步骤:

获取二值化图像;

对所述二值化图像的每一元素行分别分配一线程,并利用所述线程对所述元素行中的连通元素进行标记,得到标记后的二值化图像;

对所述标记后的二值化图像的每一元素列分别分配一线程,并利用所述线程根据所述标记对所述元素列中的每一所述连通元素进行等价映射变换,得到标记连通分量的图像。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种连通分量的提取终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取二值化图像;

对所述二值化图像的每一元素行分别分配一线程,并利用所述线程对所述元素行中的连通元素进行标记,得到标记后的二值化图像;

对所述标记后的二值化图像的每一元素列分别分配一线程,并利用所述线程根据所述标记对所述元素列中的每一所述连通元素进行等价映射变换,得到标记连通分量的图像。

本发明的有益效果在于:对获取的二值化图像的每一元素行分别分配一线程,并利用线程对元素行进行标记,得到标记后的二值化图像,对标记后的二值化图像的每一元素列分别分配一线程,并利用线程根据标记对元素列中的每一连通元素进行等价映射变换,得到标记连通分量的图像,以此利用GPU多线程同时进行连通分量的提取,相较于现有的单线程计算,计算速度更快,从而有效提高计算效率。

附图说明

图1为本发明实施例的一种连通分量的提取方法的步骤流程图;

图2为本发明实施例的一种连通分量的提取终端的结构示意图;

图3为本发明实施例一种连通分量的提取方法中的二值化图像;

图4为本发明实施例一种连通分量的提取方法中的线程分配示意图;

图5为本发明实施例一种连通分量的提取方法中的重映射后的二值化图像;

图6为本发明实施例一种连通分量的提取方法中的分配线程的重映射后的二值化图像;

图7为本发明实施例一种连通分量的提取方法中的标记连通分量的图像。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1,一种连通分量的提取方法,包括步骤:

获取二值化图像;

对所述二值化图像的每一元素行分别分配一线程,并利用所述线程对所述元素行中的连通元素进行标记,得到标记后的二值化图像;

对所述标记后的二值化图像的每一元素列分别分配一线程,并利用所述线程根据所述标记对所述元素列中的每一所述连通元素进行等价映射变换,得到标记连通分量的图像。

从上述描述可知,本发明的有益效果在于:对获取的二值化图像的每一元素行分别分配一线程,并利用线程对元素行进行标记,得到标记后的二值化图像,对标记后的二值化图像的每一元素列分别分配一线程,并利用线程根据标记对元素列中的每一连通元素进行等价映射变换,得到标记连通分量的图像,以此利用GPU多线程同时进行连通分量的提取,相较于现有的单线程计算,计算速度更快,从而有效提高计算效率。

进一步地,所述利用所述线程对所述元素行中的连通元素进行标记,得到标记后的二值化图像包括:

利用所述线程定义一标记值,所述标记值初始为0;

遍历所述元素行中的每一元素,直至所述元素行中的所有元素均已遍历,得到标记后的二值化图像;

对于遍历到的当前元素,判断所述当前元素的元素值是否为第一预设值,若是,则将所述标记值加一,得到更新后的标记值,并使用所述更新后的标记值对所述当前元素进行标记,得到标记后的元素;

确定所述标记后的元素的下一元素,并判断所述下一元素的元素值是否为第一预设值,若为第一预设值,则使用所述更新后的标记值对所述下一元素进行标记,得到标记后的元素,若不为第一预设值,则不对所述下一元素进行标记,并继续遍历下一元素;

若否,则继续遍历下一元素。

由上述描述可知,利用分配的线程对单独的元素行进行标记,得到标记后的二值化图像,能够有效减少行标记时间。

进一步地,所述利用所述线程对所述元素行中的连通元素进行标记,得到标记后的二值化图像之后,还包括:

确定所述标记后的二值化图像中每一元素行的标记值的个数总和;

根据元素行的标记顺序依次对所述标记后的二值化图像中的所述标记值按照所述个数总和进行重新映射,得到重映射后的二值化图像;

对所述标记后的二值化图像的每一元素列分别分配一线程包括:

对所述重映射后的二值化图像的每一元素列分别分配一线程。

由上述描述可知,根据元素行的标记顺序依次对标记后的二值化图像中的标记值按照个数总和进行重新映射,能够确保重映射后的二值化图像中的标记是独一的,以便后续标记连通分量。

进一步地,所述利用所述线程根据所述标记对所述元素列中的每一所述连通元素进行等价映射变换,得到标记连通分量的图像包括:

确定所述重映射后的二值化图像中的最小标记值和最大标记值;

根据所述最大标记值构建初始映射表,所述初始映射表包括每一标记值、与所述每一标记值对应的第一映射值和第二映射值;

依次遍历每一所述元素列中的每一有标记值的元素,直至所有元素列中的所有有标记值的元素均已遍历;

对于遍历到的当前元素,判断所述当前元素的标记值是否为所述最小标记值,若是,则确定与所述当前元素连通的目标元素,并将与所述目标元素的标记值对应的第一映射值修改为所述最小标记值,若否,则判断所述当前元素与所述当前元素的下一元素是否连通;

若不连通,则不执行操作,若连通,则判断所述下一元素是否存在多个上行连通元素,若存在,则在所述初始映射表中,将所述下一元素的标记值作为与所述当前元素的标记值对应的第二映射值,得到更新后的第一映射表,若不存在,则在所述初始映射表中,将与所述下一元素的标记值对应的第一映射值修改为所述当前元素的标记值,得到更新后的第一映射表;

按照标记值从小到大的顺序基于所述重映射后的二值化图像依次对所述更新后的第一映射表中的所述第一映射值进行传导映射,得到更新后的第二映射表;

按照标记值从小到大的顺序基于所述重映射后的二值化图像依次对所述更新后的第二映射表中的所述第二映射值进行传导映射,得到更新后的第三映射表;

利用线程基于所述更新后的第三映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像。

由上述描述可知,利用分配的线程对元素列进行等价映射变换,同时使用映射表实现,能够减少对比标记时间,从而提高提取效率。

进一步地,所述按照标记值从小到大的顺序基于所述重映射后的二值化图像依次对所述更新后的第一映射表中的所述第一映射值进行传导映射,得到更新后的第二映射表包括:

按照标记值从小到大的顺序遍历所述重映射后的二值化图像的每一有标记值的元素,直至所述重映射后的二值化图像中所有有标记值的元素均已遍历;

对于遍历到的当前元素,若所述当前元素不存在上行连通元素,则将所述更新后的第一映射表中与所述当前元素的标记值对应的所述第一映射值修改为所述当前元素的标记值本身,得到更新后的第二映射表,否则,判断所述更新后的第一映射表中是否存在与所述当前元素的标记值对应的第一映射值;

若存在,则追溯与所述当前元素的标记值对应的第一映射值,得到第一追溯值,并使用所述第一追溯值修改所述更新后的第一映射表中与所述当前元素的标记值对应的所述第一映射值,得到更新后的第二映射表;

若不存在,则将所述第一映射表中与所述当前元素的标记值对应的所述第一映射值修改为所述当前元素的标记值本身,得到更新后的第二映射表。

由上述描述可知,按照标记值从小到大的顺序基于重映射后的二值化图像依次对第一映射表中的第一映射值进行传导映射,得到第二映射表,作为后续进行等价变换的基础,确保连通分量提取的准确性。

进一步地,所述按照标记值从小到大的顺序基于所述重映射后的二值化图像依次对所述更新后的第二映射表中的所述第二映射值进行传导映射,得到更新后的第三映射表包括:

按照标记值从小到大的顺序遍历所述重映射后的二值化图像的每一有标记值的元素,直至所述重映射后的二值化图像中所有有标记值的元素均已遍历;

对于遍历到的当前元素,若所述当前元素的标记值为所述最小标记值,则将所述更新后的第二映射表中与所述当前元素的标记值对应的所述第二映射值修改为所述当前元素的标记值本身,得到更新后的第三映射表,否则,判断所述更新后的第二映射表中是否存在与所述当前元素的标记值对应的第二映射值;

若存在,则追溯与所述当前元素的标记值对应的第二映射值,得到第二追溯值,并使用所述第二追溯值修改所述更新后的第二映射表中与所述当前元素的标记值对应的所述第二映射值,得到更新后的第三映射表;

若不存在,则追溯与所述当前元素的标记值对应的第一映射值,得到第三追溯值,并使用所述第三追溯值作为所述更新后的第二映射表中与所述当前元素的标记值对应的所述第二映射值,得到更新后的第三映射表。

由上述描述可知,按照标记值从小到大的顺序基于重映射后的二值化图像依次对第二映射表中的第二映射值进行传导映射,从而实现对多列等价标记的等价。

进一步地,所述利用线程基于所述更新后的第三映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像之前,还包括:

将所述更新后的第三映射表中的所述第二映射值更新为连续值,得到最终映射表;

所述利用线程基于所述更新后的第三映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像包括:

利用线程基于所述最终映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像。

由上述描述可知,将第三映射表中的第二映射值更新为连续值,得到最终映射表,以便后续顺利提取连通分量。

进一步地,所述利用线程基于所述最终映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像包括:

从所述最终映射表中查找与所述重映射后的二值化图像的标记对应的目标第二映射值;

利用线程使用所述目标第二映射值修改所述重映射后的二值化图像的标记,得到标记连通分量的图像。

由上述描述可知,从最终映射表中查找与重映射后的二值化图像的标记对应的目标第二映射值,使用目标第二映射值修改重映射后的二值化图像的标记,得到标记连通分量的图像,以此简单、有效地提取图像中的连通分量。

进一步地,所述利用线程使用所述目标第二映射值修改所述重映射后的二值化图像的标记,得到标记连通分量的图像包括:

利用所述线程使用所述目标第二映射值修改所述重映射后的二值化图像的所述元素列中的标记,得到标记连通分量的图像。

由上述描述可知,利用多线程修改图像中的标记,提高处理效率。

请参照图2,本发明另一实施例提供了一种连通分量的提取终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述连通分量的提取方法中的各个步骤。

本发明上述的连通分量的提取方法及终端能够适用于自动图像分析场景,以下通过具体实施方式进行说明:

请参照图1、图3-图7,本发明的实施例一为:

一种连通分量的提取方法,包括步骤:

S1、获取二值化图像。

所述二值化图像为元素的元素值为0或1的图像,如图3所示。

S2、对所述二值化图像的每一元素行分别分配一线程,并利用所述线程对所述元素行中的连通元素进行标记,得到标记后的二值化图像,具体包括:

S21、对所述二值化图像的每一元素行分别分配一线程,如图4所示。

S22、利用所述线程定义一标记值x,所述标记值初始为0,即x=0。

S23、遍历所述元素行中的每一元素,直至所述元素行中的所有元素均已遍历,得到标记后的二值化图像,如图4所示。

S231、对于遍历到的当前元素,判断所述当前元素的元素值是否为第一预设值,若是,则执行S2311-S2312,若否,则继续遍历下一元素。

其中,所述第一预设值为1。

S2311、将所述标记值加一,得到更新后的标记值,即x+1,并使用所述更新后的标记值对所述当前元素进行标记,得到标记后的元素。

S2312、确定所述标记后的元素的下一元素,并判断所述下一元素的元素值是否为第一预设值,若为第一预设值,则执行S23121,若不为第一预设值,则执行S23122。

S23121、使用所述更新后的标记值对所述下一元素进行标记,得到标记后的元素。

S23122、不对所述下一元素进行标记,并继续遍历下一元素。

S3、确定所述标记后的二值化图像中每一元素行的标记值的个数总和。

S4、根据元素行的标记顺序依次对所述标记后的二值化图像中的所述标记值按照所述个数总和进行重新映射,得到重映射后的二值化图像。

比如,如图4所示,第二行的元素行的标记值的个数总和为2,那么该元素行的标记值依次映射为1、2,第三行的元素行的标记值的个数总和为2,那么该元素行的标记值依次映射为3、4,第四行的元素行的标记值的个数总和为3,那么该元素行的标记值依次映射为5、6、7,依此类推,最终得到如图5所示的重映射后的二值化图像,重映射后的二值化图像的标记值是独一的。

S5、对所述标记后的二值化图像的每一元素列分别分配一线程,并利用所述线程根据所述标记对所述元素列中的每一所述连通元素进行等价映射变换,得到标记连通分量的图像,具体包括:

S51、对所述重映射后的二值化图像的每一元素列分别分配一线程,如图所示。

S52、确定所述重映射后的二值化图像中的最小标记值和最大标记值。

如图5所示,所述重映射后的二值化图像中的最小标记值为1,最大标记值为11。

S53、根据所述最大标记值构建初始映射表,所述初始映射表包括每一标记值、与所述每一标记值对应的第一映射值和第二映射值。

比如,最大标记值为11,那么可以构建如表1所示的初始映射表,标记值从1-11,其中的第一映射值和第二映射值可均为空。

表1初始映射表

L

在另一种可选的实施方式中,还包括:将所述初始映射表中的第一映射值和第二映射值初始化为与其对应的标记值本身,如表2所示。

表2另一种初始映射表

S54、依次遍历每一所述元素列中的每一有标记值的元素,直至所有元素列中的所有有标记值的元素均已遍历。

比如,如图5所示,先遍历第一元素列中标记值为1的元素,再遍历第一元素列中标记值为5的元素,然后第二元素列中标记值为1的元素,接着遍历第二元素列中标记值为3的元素,接着第二元素列中标记值为5的元素,依此类推,直至所有元素列中的所有有标记值的元素均已遍历。

S541、对于遍历到的当前元素,判断所述当前元素的标记值是否为所述最小标记值,若是,则执行S5411,若否,则执行S5412。

比如,如图5所示,假设遍历到第一元素列标记值为1的元素,该标记值是最小标记值,那么执行S5411,假设遍历到第二元素列标记值为3的元素,该标记值不是最小标记值,则执行S5412。

S5411、确定与所述当前元素连通的目标元素,并将与所述目标元素的标记值对应的第一映射值修改为所述最小标记值。

在一种可选的实施方式中,若所述当前元素没有连通的目标元素,则不执行操作。

比如,如图5所示,假设遍历到第一元素列标记值为1的元素,该元素不存在连通的目标元素,则不执行操作,假设遍历到第二元素列标记值为1的元素,该元素连通的目标元素为第二元素列标记值为3的元素,那么将该元素的标记值对应的第一映射值修改为1,依此类推。

S5412、判断所述当前元素与所述当前元素的下一元素是否连通,若不连通,则不执行操作,若连通,则执行S54121。

比如,如图5所示,假设遍历到第二元素列标记值为3的元素,该元素与下一标记值为5的元素连通,则执行S54121,假设遍历到第四元素列标记值为2的元素,该元素与下一标记值为3的元素连通,则执行S54121。

S54121、判断所述下一元素是否存在多个上行连通元素,若存在,则执行S541211,若不存在,则执行S541212。

比如,如图5所示,第二元素列标记值为5的元素不存在多个上行连通元素,其只有一个上行连通元素,即标记值为3的元素,所以执行S541212,而第四元素列标记值为3的元素存在多个上行连通元素,即标记值为1的元素和标记值为2的元素,所以执行S541211。

S541211、在所述初始映射表中,将所述下一元素的标记值作为与所述当前元素的标记值对应的第二映射值,得到更新后的第一映射表。

比如,将第四元素列标记值为2的元素的第二映射值改为3。

S541212、在所述初始映射表中,将与所述下一元素的标记值对应的第一映射值修改为所述当前元素的标记值,得到更新后的第一映射表。

比如,将第二元素列标记值为5的元素的第一映射值改为3。

全部遍历完成后,得到的更新后的第一映射表如表3所示。

表3更新后的第一映射表

S55、按照标记值从小到大的顺序基于所述重映射后的二值化图像依次对所述更新后的第一映射表中的所述第一映射值进行传导映射,得到更新后的第二映射表,具体包括:

S551、按照标记值从小到大的顺序遍历所述重映射后的二值化图像的每一有标记值的元素,直至所述重映射后的二值化图像中所有有标记值的元素均已遍历。

比如,如图5所示,先遍历标记值为1的元素,再遍历标记值为2的元素,接着遍历标记值为3的元素,依此类推,直至重映射后的二值化图像中所有有标记值的元素均已遍历。

S5511、对于遍历到的当前元素,若所述当前元素不存在上行连通元素,则将所述更新后的第一映射表中与所述当前元素的标记值对应的所述第一映射值修改为所述当前元素的标记值本身,得到更新后的第二映射表,否则,判断所述更新后的第一映射表中是否存在与所述当前元素的标记值对应的第一映射值;若存在,则执行S55111;若不存在,则执行S55112。

比如,如图5所示,标记值为3的元素存在两个上行连通元素,即标记值为1的元素和标记值为2的元素,那么应判断所述更新后的第一映射表中是否存在与所述当前元素的标记值对应的第一映射值,若存在,则执行S55111,若不存在,则执行S55112,而标记值为1的元素不存在上行连通元素,则表3中标记值为1的元素的第一映射值修改为该元素的标记值本身,即改为1,得到更新后的第二映射表。

S55111、追溯与所述当前元素的标记值对应的第一映射值,得到第一追溯值,并使用所述第一追溯值修改所述更新后的第一映射表中与所述当前元素的标记值对应的所述第一映射值,得到更新后的第二映射表。

比如,如图5所示,标记值为5的元素存在上行连通元素,即标记值为3的元素,且表3中标记值为5的元素存在第一映射值3,则由于该第一映射值3对应的标记3被映射为1,所以可以确定第一追溯值为1,将标记值为5的元素的第一映射值改为1。

S55112、将所述第一映射表中与所述当前元素的标记值对应的所述第一映射值修改为所述当前元素的标记值本身,得到更新后的第二映射表。

全部遍历完成后,即可得到更新后的第二映射表,如表4所示。

表4更新后的第二映射表

S56、按照标记值从小到大的顺序基于所述重映射后的二值化图像依次对所述更新后的第二映射表中的所述第二映射值进行传导映射,得到更新后的第三映射表,具体包括:

S561、按照标记值从小到大的顺序遍历所述重映射后的二值化图像的每一有标记值的元素,直至所述重映射后的二值化图像中所有有标记值的元素均已遍历。

S5611、对于遍历到的当前元素,若所述当前元素的标记值为所述最小标记值,则将所述更新后的第二映射表中与所述当前元素的标记值对应的所述第二映射值修改为所述当前元素的标记值本身,得到更新后的第三映射表,否则,判断所述更新后的第二映射表中是否存在与所述当前元素的标记值对应的第二映射值;若存在,则执行S56111;若不存在,则S56112。

比如,如图5所示,标记值为1的元素,其标记值为最小标记值,所以将该元素的第二映射值改为该元素的标记值本身,即1,而标记值为2的元素,其标记值不为最小标记值,应判断表4中是否存在与标记值为2的元素对应的第二映射值,若存在,则执行S56111,若不存在,则S56112。

S56111、追溯与所述当前元素的标记值对应的第二映射值,得到第二追溯值,并使用所述第二追溯值修改所述更新后的第二映射表中与所述当前元素的标记值对应的所述第二映射值,得到更新后的第三映射表。

由于表4中标记值为2的元素存在对应的第二映射值3,则由于该第二映射值3对应的标记值3被映射为1,所以可以确定第二追溯值为1,将标记值为2的元素对应的第二映射值改为1。

S56112、追溯与所述当前元素的标记值对应的第一映射值,得到第三追溯值,并使用所述第三追溯值作为所述更新后的第二映射表中与所述当前元素的标记值对应的所述第二映射值,得到更新后的第三映射表。

如表4所示,标记值为3的元素不存在对应的第二映射值,那么将标记值为3的元素的第一映射值作为第三追溯值,即为1,则标记值为3的元素对应的第二映射值为1。

全部遍历完成后,即可得到更新后的第三映射表,如表5所示。

表5更新后的第三映射表

S57、将所述更新后的第三映射表中的所述第二映射值更新为连续值,得到最终映射表。

比如,所述更新后的第三映射表中的所述第二映射值包括1、4、9,则将其更新为连续值1、2、3,得到最终映射表,如表6所示。

表6最终映射表

S58、利用线程基于所述更新后的第三映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像。

具体的,如图6所示,利用线程基于所述最终映射表对所述重映射后的二值化图像的标记进行等价变换,得到标记连通分量的图像,具体包括:

S581、从所述最终映射表中查找与所述重映射后的二值化图像的标记对应的目标第二映射值。

S582、利用线程使用所述目标第二映射值修改所述重映射后的二值化图像的标记,得到标记连通分量的图像。

具体的,利用所述线程使用所述目标第二映射值修改所述重映射后的二值化图像的所述元素列中的标记,得到标记连通分量的图像,如图7所示。

在现有技术中,需要单线程对每个像素点单独进行串行运算,如果一张图像大小为M*N,单个像素点平均运行时间为T,那总的运算的时间为M*N*T。本发明加入GPU多线程并行运算后,并行计算次数为M+N,单个像素点平均运行时间为T,运算的时间为(M+N)*T,大大缩小了运算时间,提高了效率。

请参照图2,本发明的实施例二为:

一种连通分量的提取终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一中的连通分量的提取方法中的各个步骤。

综上所述,本发明提供的一种连通分量的提取方法及终端,对获取的二值化图像的每一元素行分别分配一线程,并利用线程对元素行进行标记,得到标记后的二值化图像,对标记后的二值化图像的每一元素列分别分配一线程,并利用线程根据标记对元素列中的每一连通元素进行等价映射变换,得到标记连通分量的图像,以此利用GPU多线程同时进行连通分量的提取,相较于现有的单线程计算,计算速度更快,从而有效提高计算效率;另外,从最终映射表中查找与重映射后的二值化图像的标记对应的目标第二映射值,使用目标第二映射值修改重映射后的二值化图像的标记,得到标记连通分量的图像,以此简单、有效地提取图像中的连通分量。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种基于智能终端的显示方法及一种智能终端
  • 一种多终端调度方法、信令冲突的处理方法、基站及终端
  • 一种信息提取方法、提取装置、终端设备及可读存储介质
  • 一种纹理特征提取方法、纹理特征提取装置及终端设备
技术分类

06120116498738