二维数字岩心的连通区域识别方法及装置与流程

文档序号:11277322阅读:255来源:国知局
二维数字岩心的连通区域识别方法及装置与流程

本发明涉及计算机图像处理领域,尤其涉及一种二维数字岩心的连通区域识别方法及装置。



背景技术:

数字岩心技术是近年兴起的岩心分析的有效方法,在常规砂岩和碳酸盐岩等岩心分析领域应用广泛,获得了极大的成功。基本原理是基于二维扫描电镜图像或三维ct扫描图像,运用计算机图像处理技术,通过一定的算法完成数字岩心重构。

数字岩心建模方法可分为两大类:物理实验方法和数值重建方法。物理实验方法均借助高倍光学显微镜、扫描电镜或ct成像仪等高精度仪器获取岩心的平面图像,之后对平面图像进行重建即可得到数字岩心;数值重建方法则借助岩心平面图像等少量资料,通过图像分析提取建模信息,之后采用某种数学方法建立数字岩心。上述建立二维数字岩心的方法,相邻连通区域之间没有很好地进行区分标识,不利于研究人员查看分析。因此,亟需一种二维数字岩心的连通区域识别方法。



技术实现要素:

本发明提供一种二维数字岩心的连通区域识别方法及装置,用以解决现有技术中的二维数字岩心相邻连通区域之间区分不明显的技术问题。

本发明一方面提供一种二维数字岩心的连通区域识别方法,包括:

数据读取步骤,读取二维数字岩心文件,所述二维数字岩心文件包括能够表征二维数字岩心的数据,其中,二维数字岩心的数据用于表示多个像素点,每个像素点包括像素值和用于确定像素点位置的二维坐标,二维坐标分别用x和y表示;

数据分块步骤,对二维数字岩心数据进行分块处理,以获得多个子块;

扫描线获取步骤,对各子块的二维数字岩心数据进行扫描,以获取扫描线;

子连通区域获取步骤,在各子块内根据扫描线生成子连通区域;

父连通区域获取步骤,对子连通区域进行合并处理,以生成父连通区域;

标记步骤,对各父连通区域采用不同的颜色进行标记。

进一步的,扫描线获取步骤,具体包括:

对每个子块分别进行像素点筛选,以获得优选像素点,其中,优选像素点为像素值小于第一预设阈值的像素点;

在每个子块内获取扫描线的长度大于第二预设阈值的扫描线,所述扫描线的长度为x方向上相邻的优选像素点的连线长度,所述扫描线包括组成扫描线长度的各个优选像素点。

进一步的,子连通区域获取步骤,具体包括:

初始化子步骤,初始化未分组扫描线,初始化子连通区域为空,其中,未分组扫描线包括所有的扫描线;

当前扫描线选定子步骤,在未分组扫描线内任意选定一条扫描线作为当前扫描线,并将当前扫描线添加到子连通区域中,且将当前扫描线从未分组扫描线中删除;

子连通区域生成子步骤,在当前扫描线的y方向上查找是否有相邻的扫描线,若有,将其添加到子连通区域中,并将其设置为当前扫描线,且将当前扫描线从未分组扫描线中删除,转子连通区域生成子步骤执行,若无,保存此时的子连通区域,然后设置子连通区域为空,判断未分组扫描线是否为空,若不为空,转当前扫描线选定子步骤执行,以获得多个子连通区域。

进一步的,父连通区域获取步骤,具体包括:

判断分属于相邻两个子块的两个子连通区域的范围是否有交集,若有交集,则将两个子块的扫描线按照y值排序,对于每个y值,在两个子块中各取y-1,y,y+1这三行y值对应的扫描线,形成两组y值扫描线;

若两组y值扫描线中有相邻的扫描线,则将两个子连通区域合并,以形成父连通区域。

进一步的,标记步骤具体包括:

中心点获取子步骤,获取父连通区域的中心点,并将中心点利用三角剖分连接,初始化未标记中心点,其中,未标记中心点包括所有中心点;

判断子步骤,判断未标记中心点是否为空,若不为空,则转标记子步骤执行;

标记子步骤,将未标记中心点中所连的边的数量最多的中心点设置为当前中心点,对当前中心点所在的父连通区域进行颜色标记,其颜色要与当前中心点有边连接且标记过的父连通区域的颜色不同;

设置子步骤,将所有与当前中心点有边相连的中心点所连接的边的数量减1,将当前中心点从未标记中心点中删除,转判断子步骤执行。

本发明另一方面提供一种二维数字岩心的连通区域识别装置,包括:

数据读取模块,用于读取二维数字岩心文件,所述二维数字岩心文件包括能够表征二维数字岩心的数据,其中,二维数字岩心的数据用于表示多个像素点,每个像素点包括像素值和用于确定像素点位置的二维坐标,二维坐标分别用x和y表示;

数据分块模块,用于对二维数字岩心数据进行分块处理,以获得多个子块;

扫描线获取模块,用于对各子块的二维数字岩心数据进行扫描,以获取扫描线;

子连通区域获取模块,用于在各子块内根据扫描线生成子连通区域;

父连通区域获取模块,用于对子连通区域进行合并处理,以生成父连通区域;

标记模块,用于对各父连通区域采用不同的颜色进行标记。

进一步的,扫描线获取模块具体用于:

对每个子块分别进行像素点筛选,以获得优选像素点,其中,优选像素点为像素值小于第一预设阈值的像素点;

在每个子块内获取扫描线的长度大于第二预设阈值的扫描线,所述扫描线的长度为x方向上相邻的优选像素点的连线长度,所述扫描线包括组成扫描线长度的各个优选像素点。

进一步的,子连通区域获取模块具体包括:

初始化子模块,用于初始化未分组扫描线,初始化子连通区域为空,其中,未分组扫描线包括所有的扫描线;

当前扫描线选定子模块,用于在未分组扫描线内任意选定一条扫描线作为当前扫描线,并将当前扫描线添加到子连通区域中,且将当前扫描线从未分组扫描线中删除;

子连通区域生成子模块,用于在当前扫描线在y方向上查找是否有相邻的扫 描线,若有,将其添加到子连通区域中,并将其设置为当前扫描线,且将当前扫描线从未分组扫描线中删除,触发子连通区域生成模块,若无,保存此时的子连通区域,然后设置子连通区域为空,判断未分组扫描线是否为空,若不为空,触发当前扫描线选定模块,以获得多个子连通区域。

进一步的,父连通区域获取模块,具体用于:

判断分属于相邻两个子块的两个子连通区域的范围是否有交集,若有交集,则将两个子块的扫描线按照y值排序,对于每个y值,在两个子块中各取y-1,y,y+1这三行y值对应的扫描线,形成两组y值扫描线;

若两组y值扫描线中有相邻的扫描线,则将两个子连通区域合并,以形成父连通区域。

进一步的,标记模块具体包括:

中心点获取子模块,用于获取父连通区域的中心点,并将中心点利用三角剖分连接,初始化未标记中心点,其中,未标记中心点包括所有中心点;

判断子模块,用于判断未标记中心点是否为空,若不为空,则触发标记子模块;

标记子模块,用于将未标记中心点中所连的边的数量最多的中心点设置为当前中心点,对当前中心点所在的父连通区域进行颜色标记,其颜色要与当前中心点有边连接且标记过的父连通区域的颜色不同;

设置子模块,用于将所有与当前中心点有边相连的中心点所连接的边的数量减1,将当前中心点从未标记中心点中删除,触发判断子模块。

本发明提供的二维数字岩心的连通区域识别方法及装置,首先读取二维数字岩心文件,然后对二维数字岩心数据进行分块处理,以获得多个子块;再对各子块的二维数字岩心数据进行扫描,以获取扫描线,并在各子块内根据扫描线生成子连通区域,然后对子连通区域进行合并处理,以生成父连通区域,最后对各父连通区域采用不同的颜色进行标记。利用本发明提供的这种方法不仅可以精确获得二维数字岩心的连通区域,而且可以对二维数字岩心相邻连通区域之间进行区分,为研究人员进行分析研究奠定基础。

附图说明

在下文中将基于实施例并参考附图来对本发明进行更详细的描述。其中:

图1为根据本发明实施例一的二维数字岩心的连通区域识别方法的流程示意图;

图2为根据本发明实施例二的二维数字岩心的连通区域识别方法的流程示意图;

图3为根据本发明实施例三的二维数字岩心的连通区域识别装置的结构示意图;

图4为根据本发明实施例四的二维数字岩心的连通区域识别装置的结构示意图。

在附图中,相同的部件使用相同的附图标记。附图并未按照实际的比例绘制。

具体实施方式

下面将结合附图对本发明作进一步说明。

实施例一

图1为根据本发明实施例一的二维数字岩心的连通区域识别方法的流程示意图;如图1所示,本实施例提供一种二维数字岩心的连通区域识别方法,包括:

数据读取步骤101,读取二维数字岩心文件,所述二维数字岩心文件包括能够表征二维数字岩心的数据,其中,二维数字岩心的数据用于表示多个像素点,每个像素点包括像素值和用于确定像素点位置的二维坐标,二维坐标分别用x和y表示。

具体的,二维数字岩心文件包括二维数字岩心数据,二维数字岩心数据可表征多个像素点,每个像素点包括像素值和可确定像素点位置的二维坐标组成,二维坐标可表示空间任何一个位置,本发明中的二维坐标分别用x和y表示,本实施例中采用直角坐标系来对像素点的位置进行说明。

数据分块步骤102,对二维数字岩心数据进行分块处理,以获得多个子块。

具体的,将二维数字岩心数据分块,每一块为一个子块,如若导入的二维数字岩心数据在x和y方向上的像素点个数分别为110342和104900,可将二维数字岩心数据划分为在x、y方向上的像素点个数分别为1024、1024的子块。

扫描线获取步骤103,对各子块的二维数字岩心数据进行扫描,以获取扫描线。

具体的,扫描线由像素点和像素点之间的连线组成,用于后续判断像素点之 间的连通关系。对各子块的二维数字岩心数据进行扫描,即对各子块中的各像素点进行扫描,通过判断各像素点之间的关系以获取扫描线。

子连通区域获取步骤104,在各子块内根据扫描线生成子连通区域。

具体的,在各个子块内,根据各个扫描线之间的相互关系,使具有相邻关系的扫描线合并,使其处于一个子连通区域内。扫描线之间是否相邻的判断方法为:x方向没有重叠则不相邻,y方向距离大于1则不相邻,除以上情况外的其它情况认为两个扫描线相邻。

父连通区域获取步骤105,对子连通区域进行合并处理,以生成父连通区域。

具体的,在相邻的各个子块内,对处于不同子块的子连通区域进行分析,将具有连通关系的子连通区域合并,以生成父连通区域。合并两个子块中的子连通区域的方法为:将子块中一个子连通区域,和另一个子块中每个子连通区域逐一进行比对,将具有相邻关系的子连通区域的扫描线合并到一起形成父连通区域。

标记步骤106,对各父连通区域采用不同的颜色进行标记。

具体的,对各个父连通区域采用不同的颜色进行标记,以示区别。

进一步的,在获取父连通区域之后,由于将相邻子块的子连通区域合并后,可能一些跨多个子块的子连通区域并没有被合成一个父连通区域,所以还要对这些父连通区域进行相邻性的识别并合并。合并过程就是对这些父连通区域互相比对,将相邻的父连通区域合并,直到找不到相邻的父连通区域。

本实施例中的二维数字岩心的连通区域识别方法,首先读取二维数字岩心文件,然后对二维数字岩心数据进行分块处理,以获得多个子块;再对各子块的二维数字岩心数据进行扫描,以获取扫描线,并在各子块内根据扫描线生成子连通区域,然后对子连通区域进行合并处理,以生成父连通区域,最后对各父连通区域采用不同的颜色进行标记。利用本发明提供的这种方法不仅可以精确获得二维数字岩心的连通区域,而且可以对二维数字岩心相邻连通区域之间进行区分,为研究人员进行分析研究奠定基础。

实施例二

本实施例是在上述实施例的基础上进行的补充说明。

图2为根据本发明实施例二的二维数字岩心的连通区域识别方法的流程示意图;如图2所示,本实施例提供一种二维数字岩心的连通区域识别方法,包括:

步骤201,读取二维数字岩心文件。

步骤202,对二维数字岩心数据进行分块处理,以获得多个子块。

步骤201-202具体可参见实施例一中的步骤101-步骤102,在此不再赘述。

步骤2031,对每个子块分别进行像素点筛选,以获得优选像素点,其中,优选像素点为像素值小于第一预设阈值的像素点。

具体的,第一预设阈值可根据实际情况进行灵活设置,在此不做限制,在本实施例中,第一预设阈值取55,将每个子块中的像素值小于55的像素点选定为优选像素点。

步骤2032,获取每个子块内扫描线的长度大于第二预设阈值的扫描线,所述扫描线的长度为x方向上相邻的优选像素点的连线长度,所述扫描线包括组成扫描线长度的各个优选像素点。

具体的,相邻两个优选像素点之间的扫描线长度为1,第二预设阈值可根据实际情况进行灵活设置,在此不做限制,在本实施例中,第二预设阈值取3,即连续4个或以上像素点组成的扫描线会被保留。扫描线包含这条线x方向的起止坐标和y值。

步骤2041,初始化未分组扫描线,初始化子连通区域为空,其中,未分组扫描线包括所有的扫描线。

具体的,初始化子连通区域为空,即子连通区域不包括任何扫描线。

步骤2042,在未分组扫描线内任意选定一条扫描线作为当前扫描线,并将当前扫描线添加到子连通区域中,且将当前扫描线从未分组扫描线中删除。

步骤2043,在当前扫描线的y方向上查找是否有相邻的扫描线,若有,转步骤2043a执行,若无,转步骤2043b执行。

具体的,在当前扫描线的y方向上查找是否有相邻的扫描线,若有,转步骤2043a执行,若无,转步骤2043b执行。

扫描线是否相邻的判断方法为:x方向没有重叠则不相邻,y方向距离大于1则不相邻,其它情况相邻。

步骤2043a,将查找到的相邻的扫描线添加到子连通区域中,并将其设置为当前扫描线,且将当前扫描线从未分组扫描线中删除,转步骤2043执行。

具体的,将相邻的扫描线全部添加到子连通区域中,并将查找到的相邻的扫描线设置为当前扫描线,转步骤2043执行。

步骤2043b,保存此时的子连通区域,然后设置子连通区域为空,转步骤 2043b1执行。

具体的,执行到本步骤,说明包括在子连通区域中的扫描线已经全部添加完毕,因此需要对此时的子连通区域进行保存,用于后续步骤使用,然后将子连通区域设置为空,用于下一轮新的循环,即转步骤2043b1执行。

步骤2043b1,判断未分组扫描线是否为空,若不为空,转步骤2042执行,以获得多个子连通区域。若为空,则转步骤2051执行。

具体的,判断未分组扫描线中是否还有扫描线没有参与子连通区域的合并,若还有,即未分组扫描线不为空,则需要根据扫描线生成子连通区域,转步骤2042执行,以此来获得多个子连通区域,若未分组扫描线为空,则说明所有的扫描线全部参与生成了子连通区域,转步骤2051执行即可。

进一步的,为了减少计算量,并在合理的精度范围内获得子连通区域,对子连通区域进行优选,将子连通区域面积小于第三预设阈值的剔除掉,第三预设阈值在本实施例中设为22,也可根据实际情况设置为其他数值,在此不做限定。

步骤2051,判断分属于相邻两个子块的两个子连通区域的范围是否有交集,若有交集,则将两个子块的扫描线按照y值排序,对于每个y值,在两个子块中各取y-1,y,y+1这三行y值对应的扫描线,形成两组y值扫描线。

具体的,合并两个子块中的子连通区域的方法为:将子块中一个子连通区域,和另一个子块中每个子连通区域逐一进行比对,将具有相邻关系的子连通区域的扫描线合并到一起形成父连通区域。

步骤2051-步骤2052为子连通区域是否相邻的判断方法。

具体的,按照y值排序后,从小到大依次比较不同y值所对应的两个子块中的扫描线是否相邻,对于每个y值,在两个子块中各取y-1,y,y+1这三行y值对应的扫描线,形成两组y值扫描线。

步骤2052,若两组y值扫描线中有相邻的扫描线,则将两个子连通区域合并,以形成父连通区域。

具体的,按照步骤2043中的扫描线是否相邻的判断方法,对两组y值扫描线中的扫描线进行分析,判断是否存在相邻的扫描线,若存在,则将两个子连通区域合并,以形成父连通区域。

步骤2061,获取父连通区域的中心点,并将中心点利用三角剖分连接,初始化未标记中心点,其中,未标记中心点包括所有中心点。

具体的,中心点为父连通区域所外包的最小长方形的中心。三角剖分的方法具体可参见现有技术,在此不再赘述。经过三角剖分后,会形成一个平面网络,平面网络是由若干三角形组成的,其中三角形的每个端点即为各个连通区域的中心点。

步骤2062,判断未标记中心点是否为空,若不为空,则转步骤2063执行;若为空,结束。

具体的,对父连通区域进行不同颜色标记,若未标记中心点为空,即不存在未标记中心点,则说明此时的中心点全部标记过了,应结束流程。若未标记中心点不为空,转步骤2063继续执行。

步骤2063,将未标记中心点中所连的边的数量最多的中心点设置为当前中心点,对当前中心点所在的父连通区域进行颜色标记,其颜色要与当前中心点有边连接且标记过的父连通区域的颜色不同。

步骤2064,将所有与当前中心点有边相连的中心点所连接的边的数量减1,将当前中心点从未标记中心点中删除,转步骤2062执行。

进一步的,在对所有父连通区域进行颜色标记完成之后,创建一个新的地理信息图层,将进行颜色标记后的每个父连通区域作为图层中的图元,图元颜色即父连通区域的染色,并且将每个父连通区域的扫描线集合,中心点坐标,父连通区域的面积,范围作为对应图元的属性信息加以存储。对于生成的地理信息图层,用户可以给出一个查询范围,然后得到查询范围内对应的各个图元即父连通区域,并且可以查看查询结果中每个父连通区域的属性信息,为研究人员的研究工作提供便利。

本实施例中的二维数字岩心的连通区域识别方法,不仅可以精确获得二维数字岩心的连通区域,而且可以对二维数字岩心相邻连通区域之间进行不同标记区分,为研究人员进行分析研究奠定基础。

实施例三

本实施例为装置实施例,用于执行上述实施例一中的方法。

图3为根据本发明实施例三的二维数字岩心的连通区域识别装置的结构示意图;如图3所示,本实施例提供一种二维数字岩心的连通区域识别装置,包括:数据读取模块301、数据分块模块302、扫描线获取模块303、子连通区域获取模块304、父连通区域获取模块305和标记模块306。

其中,数据读取模块301,用于读取二维数字岩心文件,所述二维数字岩心文件包括能够表征二维数字岩心的数据,其中,二维数字岩心的数据用于表示多个像素点,每个像素点包括像素值和用于确定像素点位置的二维坐标,二维坐标分别用x和y表示;

数据分块模块302,用于对二维数字岩心数据进行分块处理,以获得多个子块;

扫描线获取模块303,用于对各子块的二维数字岩心数据进行扫描,以获取扫描线;

子连通区域获取模块304,用于在各子块内根据扫描线生成子连通区域;

父连通区域获取模块305,用于对子连通区域进行合并处理,以生成父连通区域;

标记模块306,用于对各父连通区域采用不同的颜色进行标记。

本实施例是与方法实施例一对应的装置实施例,具体可参见实施例一中的描述,在此不再赘述。

实施例四

本实施例是在实施例三的基础上进行的补充说明,用于执行上述实施例二中的方法。

图4为根据本发明实施例四的二维数字岩心的连通区域识别装置的结构示意图;如图4所示,本实施例提供一种二维数字岩心的连通区域识别装置,包括:数据读取模块301、数据分块模块302、扫描线获取模块303、子连通区域获取模块304、父连通区域获取模块305和标记模块306。

其中,扫描线获取模块303具体用于:

对每个子块分别进行像素点筛选,以获得优选像素点,其中,优选像素点为像素值小于第一预设阈值的像素点;

在每个子块内获取扫描线的长度大于第二预设阈值的扫描线,所述扫描线的长度为x方向上相邻的优选像素点的连线长度,所述扫描线包括组成扫描线长度的各个优选像素点。

子连通区域获取模块304具体包括初始化子模块3041、当前扫描线选定子模块3042和子连通区域生成子模块3043。

其中,初始化子模块3041,用于初始化未分组扫描线,初始化子连通区域为 空,其中,未分组扫描线包括所有的扫描线;

当前扫描线选定子模块3042,用于在未分组扫描线内任意选定一条扫描线作为当前扫描线,并将当前扫描线添加到子连通区域中,且将当前扫描线从未分组扫描线中删除;

子连通区域生成子模块3043,用于在当前扫描线的y方向上查找是否有相邻的扫描线,若有,将其添加到子连通区域中,并将其设置为当前扫描线,且将当前扫描线从未分组扫描线中删除,触发子连通区域生成模块,若无,保存此时的子连通区域,然后设置子连通区域为空,判断未分组扫描线是否为空,若不为空,触发当前扫描线选定模块,以获得多个子连通区域。

父连通区域获取模块305,具体用于:

判断分属于相邻两个子块的两个子连通区域的范围是否有交集,若有交集,则将两个子块的扫描线按照y值排序,对于每个y值,在两个子块中各取y-1,y,y+1这三行y值对应的扫描线,形成两组y值扫描线;

若两组y值扫描线中有相邻的扫描线,则将两个子连通区域合并,以形成父连通区域。

标记模块306具体包括中心点获取子模块3061、判断子模块3062、标记子模块3063和设置子模块3064。

其中,中心点获取子模块3061,用于获取父连通区域的中心点,并将中心点利用三角剖分连接,初始化未标记中心点,其中,未标记中心点包括所有中心点;

判断子模块3062,用于判断未标记中心点是否为空,若不为空,则触发标记子模块3063;

标记子模块3063,用于将未标记中心点中所连的边的数量最多的中心点设置为当前中心点,对当前中心点所在的父连通区域进行颜色标记,其颜色要与当前中心点有边连接且标记过的父连通区域的颜色不同;

设置子模块3064,用于将所有与当前中心点有边相连的中心点所连接的边的数量减1,将当前中心点从未标记中心点中删除,触发判断子模块3062。

本实施例是与方法实施例二对应的装置实施例,具体可参见实施例二中的描述,在此不再赘述。

虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只 要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1