一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

三维露头模型确定方法及装置与流程

2022-02-24 16:38:03 来源:中国专利 TAG:


1.本技术涉及三维制图技术领域,尤其涉及一种三维露头模型确定方法及装置。


背景技术:

2.露头是出露地表的地质体,可以作为地下储层的近似类比,露头作为探索地下矿物油藏和反映地质运动的有利凭证,在储层建模工作中起到关键性作用。现阶段二维露头建模技术在建模效率、精度和可视化等方面都表现出大量劣势。因此,三维数字露头表征受到越来越多的关注。
3.在现有技术中,通过将无人机倾斜摄影、地面激光雷达和计算机虚拟等技术应用于三维数字露头表征,能够构建三维露头模型,然而,目前的三维露头模型仅以露头剖面的展示为主,缺乏生动的交互查询功能和深入的分析方法,导致三维露头模型的可靠性较低。


技术实现要素:

4.针对现有技术中的问题,本技术提出了一种三维露头模型确定方法及装置,能够提高三维露头模型的可靠性,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性。
5.为了解决上述技术问题,本技术提供以下技术方案:
6.第一方面,本技术提供一种三维露头模型确定方法,包括:
7.获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像;
8.基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标;
9.应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标;
10.根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型。
11.进一步地,所述基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标,包括:
12.获取所述二值栅格影像中缝洞对象的栅格数据;
13.应用所述栅格数据,得到各个所述缝洞顶点的二维影像坐标;
14.基于所述二维影像坐标、剖面图像的高度和宽度,得到各个所述缝洞顶点各自对应的二维纹理坐标。
15.进一步地,所述应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标,包括:
16.从所述不规则三角网模型中获取所述缝洞顶点对应的三角形;
17.应用各个所述缝洞顶点各自对应的三角形和二维纹理坐标,得到各个所述缝洞顶点的三维全局坐标;
18.应用各个所述缝洞顶点各自对应的二维纹理坐标,得到所述不规则三角网模型与各个所述缝洞对象之间交点的三维全局坐标。
19.进一步地,所述从所述不规则三角网模型中获取所述缝洞顶点对应的三角形,包括:
20.根据所述缝洞对象的最小外接矩形和不规则三角网模型,确定所述缝洞对象对应的三角形集合,其中,所述不规则三角网模型包含有多个三角形;
21.从所述三角形集合中,获取对应的缝洞对象的各个所述缝洞顶点各自对应的三角形。
22.进一步地,所述应用各个所述缝洞顶点各自对应的三角形和二维纹理坐标,得到各个所述缝洞顶点的三维全局坐标,包括:
23.获取所述三角形的三角形顶点对应的三维全局坐标和二维纹理坐标;
24.根据所述三角形的三角形顶点对应的三维全局坐标,得到所述不规则三角网模型对应的三维全局坐标系到该三角形对应的三维局部坐标系的旋转矩阵;
25.基于所述三角形顶点对应的三维全局坐标和所述旋转矩阵,得到该三角形顶点对应的三维局部坐标;
26.基于所述三角形顶点对应的三维局部坐标和二维纹理坐标,得到所述三角形对应的目标仿射变换矩阵;
27.应用所述三角形对应的目标仿射变换矩阵,以及该三角形对应的缝洞顶点的二维纹理坐标,得到该缝洞顶点的三维局部坐标;
28.基于所述缝洞顶点的三维局部坐标和所述旋转矩阵,得到该缝洞顶点的三维全局坐标。
29.进一步地,所述应用所述栅格数据,得到各个所述缝洞顶点的二维影像坐标,包括:
30.按照预设的未标记点确定顺序,确定所述二值栅格影像中的目标未标记点,若所述目标未标记点对应的缝洞对象为裂缝线状对象,则执行遍历步骤:
31.判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点,若是,则记录以该目标未标记点为起始点至所述相邻的未标记点的方向,判断该方向与前一次记录的方向是否一致;
32.若所述方向与前一次记录的方向不一致,则将所述目标未标记点对应的栅格数据转换为二维影像坐标并保存,同时将所述目标未标记点修改为已标记点;
33.将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的未标记点;
34.根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;
35.其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
36.进一步地,所述的三维露头模型确定方法还包括:
37.若所述方向与前一次记录的方向一致,则将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的标记点。
38.进一步地,所述判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点,包括:
39.判断在前一次记录的方向上是否存在与所述目标未标记点相邻的未标记点,若否,则判断旋转预设角度后的方向上是否存在所述目标未标记点相邻的未标记点。
40.进一步地,所述的三维露头模型确定方法还包括:
41.若所述目标未标记点对应的缝洞对象为孔洞面状对象,则执行轮廓检测步骤:
42.应用cvfindcontours函数对该孔洞面状对象进行轮廓检测,得到该孔洞面状对象的缝洞顶点的栅格数据对应的二维影像坐标;
43.根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;
44.其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
45.进一步地,所述的三维露头模型确定方法还包括:
46.若所述下一目标未标记点对应的缝洞对象为孔洞面状对象,则再次执行所述轮廓检测步骤。
47.第二方面,本技术提供一种三维露头模型确定装置,包括:
48.获取模块,用于获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像;
49.纹理坐标获取模块,用于基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标;
50.全局坐标获取模块,用于应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标;
51.确定模块,用于根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型。
52.进一步地,所述纹理坐标获取模块,包括:
53.栅格数据获取单元,用于获取所述二值栅格影像中缝洞对象的栅格数据;
54.影像坐标获取单元,用于应用所述栅格数据,得到各个所述缝洞顶点的二维影像坐标;
55.纹理坐标获取单元,用于基于所述二维影像坐标、剖面图像的高度和宽度,得到各个所述缝洞顶点各自对应的二维纹理坐标。
56.进一步地,所述全局坐标获取模块,包括:
57.三角形获取单元,用于从所述不规则三角网模型中获取所述缝洞顶点对应的三角形;
58.第一全局坐标获取单元,用于应用各个所述缝洞顶点各自对应的三角形和二维纹
理坐标,得到各个所述缝洞顶点的三维全局坐标;
59.第二全局坐标获取单元,用于应用各个所述缝洞顶点各自对应的二维纹理坐标,得到所述不规则三角网模型与各个所述缝洞对象之间交点的三维全局坐标。
60.进一步地,所述三角形获取单元,用于执行以下内容:
61.根据所述缝洞对象的最小外接矩形和不规则三角网模型,确定所述缝洞对象对应的三角形集合,其中,所述不规则三角网模型包含有多个三角形;
62.从所述三角形集合中,获取对应的缝洞对象的各个所述缝洞顶点各自对应的三角形。
63.进一步地,所述第一全局坐标获取单元,用于执行以下内容:
64.获取所述三角形的三角形顶点对应的三维全局坐标和二维纹理坐标;
65.根据所述三角形的三角形顶点对应的三维全局坐标,得到所述不规则三角网模型对应的三维全局坐标系到该三角形对应的三维局部坐标系的旋转矩阵;
66.基于所述三角形顶点对应的三维全局坐标和所述旋转矩阵,得到该三角形顶点对应的三维局部坐标;
67.基于所述三角形顶点对应的三维局部坐标和二维纹理坐标,得到所述三角形对应的目标仿射变换矩阵;
68.应用所述三角形对应的目标仿射变换矩阵,以及该三角形对应的缝洞顶点的二维纹理坐标,得到该缝洞顶点的三维局部坐标;
69.基于所述缝洞顶点的三维局部坐标和所述旋转矩阵,得到该缝洞顶点的三维全局坐标。
70.进一步地,所述影像坐标获取单元,用于执行以下内容:
71.按照预设的未标记点确定顺序,确定所述二值栅格影像中的目标未标记点,若所述目标未标记点对应的缝洞对象为裂缝线状对象,则执行遍历步骤:
72.判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点,若是,则记录以该目标未标记点为起始点至所述相邻的未标记点的方向,判断该方向与前一次记录的方向是否一致;
73.若所述方向与前一次记录的方向不一致,则将所述目标未标记点对应的栅格数据转换为二维影像坐标并保存,同时将所述目标未标记点修改为已标记点;
74.将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的未标记点;
75.根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
76.进一步地,所述影像坐标获取单元,还用于执行以下内容:
77.若所述方向与前一次记录的方向一致,则将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的标记点。
78.进一步地,所述影像坐标获取单元,还用于执行以下内容:
79.若所述目标未标记点对应的缝洞对象为孔洞面状对象,则执行轮廓检测步骤:
80.应用cvfindcontours函数对该孔洞面状对象进行轮廓检测,得到该孔洞面状对象的缝洞顶点的栅格数据对应的二维影像坐标;
81.根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
82.进一步地,所述影像坐标获取单元,还用于若所述下一目标未标记点对应的缝洞对象为孔洞面状对象,则再次执行所述轮廓检测步骤。
83.第三方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的三维露头模型确定方法。
84.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的三维露头模型确定方法。
85.由上述技术方案可知,本技术提供一种三维露头模型确定方法及装置。其中,该方法包括:获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像;基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标;应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标;根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型,能够提高三维露头模型的可靠性,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性;具体地,还能够提高确定三维露头模型的准确性和效率,节省内存资源,能够提高野外露头结构特征模拟、刻画与重现的准确性。
附图说明
86.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
87.图1是本技术实施例中三维露头模型确定方法的第一流程示意图;
88.图2是本技术实施例中三维露头模型确定方法的第二流程示意图;
89.图3是本技术实施例中三维露头模型确定方法的第三流程示意图;
90.图4是本技术实施例中三维露头模型确定方法的第四流程示意图;
91.图5是本技术实施例中三维露头模型确定方法中步骤501至步骤506的流程示意图;
92.图6是本技术实施例中三维露头模型确定方法中步骤601至步骤603的流程示意图;
93.图7是本技术应用实例中三维露头模型确定方法的步骤202的流程示意图;
94.图8是本技术实施例中三维露头模型确定方法中步骤801至步骤803的流程示意
图;
95.图9是本技术应用实例中自定义八方向的逻辑示意图;
96.图10是本技术应用实例中应用改进的八方向深度遍历算法遍历栅格影像过程的流程示意图;
97.图11是影像坐标系与纹理坐标系的比较示意图;
98.图12是本技术具体应用实例中三维坐标系旋转的示意图;
99.图13是本技术具体应用实例中三维露头模型确定方法中的影像坐标与三维模型全局坐标转换过程的流程示意图;
100.图14是一种举例中的碳酸盐岩露头剖面照片;
101.图15是一种举例中加载露头孔洞面状多边形图层的碳酸盐岩露头剖面图像;
102.图16是一种举例中加载露头裂缝线状多边形图层的碳酸盐岩露头剖面图像;
103.图17是本技术实施例中三维露头模型确定装置的第一结构示意图;
104.图18是本技术实施例中三维露头模型确定装置的第二结构示意图;
105.图19是本技术实施例中三维露头模型确定装置的第三结构示意图;
106.图20为本技术实施例的电子设备9600的系统构成示意框图。
具体实施方式
107.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
108.在三维地理信息系统、三维制图与虚拟现实等技术领域,主要是在综合dem数字高程模型数据及矢量基础地理信息数据的基础上构建虚拟地理环境,特别是利用矢量数据对三维地形表面点线面等特征要素进行定性与定量化描述,并进一步针对指定区域范围内的特征要素进行量算与空间分析,达到高效的发掘与传递各项专题地图信息的效果。但是以上方法始终是基于已经获取的地面控制点坐标与高程信息来进行地形三维建模与点线面要素专题信息的获取与表达,基于此,为了解决三维数字露头表征领域的缝洞等专题要素与模型无缝叠加的问题,本技术考虑在缝洞等专题要素二维图像影像坐标识别的基础上,将二维影像坐标系与三维模型全局坐标系建立关联,能够在实现露头模型三维数字化显示的基础上,将露头表面地质专题信息智能、实时且无缝的融合进露头模型。其中,地质专题信息与模型的融合离不开专题信息的提取,关于露头表面的裂缝和孔洞等特征要素的提取,基于深度学习的二维图像目标自动识别技术已经相当成熟,通过训练完全可以在二维图像上对露头表面的裂缝和孔洞进行快速识别与提取。
109.基于此,为了提高三维露头模型的可靠性,进而提高应用三维露头模型确定地下矿物油藏和反映地质运动的准确性,本技术实施例提供一种三维露头模型确定装置,该装置可以是一服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(pda)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
110.在实际应用中,进行三维露头模型确定的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本技术对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
111.上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
112.所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本技术提交日尚未开发出的网络协议。所述网络协议例如可以包括tcp/ip协议、udp/ip协议、http协议、https协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的rpc协议(remote procedure call protocol,远程过程调用协议)、rest协议(representational state transfer,表述性状态转移协议)等。
113.具体通过下述各个实施例进行说明。
114.为了提高三维露头模型的可靠性,进而提高应用三维露头模型确定地下矿物油藏和反映地质运动的准确性,本实施例提供一种执行主体是三维露头模型确定装置的三维露头模型确定方法,如图1所示,该方法具体包含有如下内容:
115.步骤101:获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像。
116.不规则三角网(triangulated irregular network,简称tin)模型可以采用一系列相连接的三角形拟合地表或其他不规则表面,以构造数字地面模型,特别是数字高程模型。可以采用delaunay剖分方法,获取所述目标碳酸盐岩露头对应的不规则三角网模型。
117.进一步地,为了提高三维露头模型确定的效率,还可以将所述二值栅格影像划分为n
×
m个相同规格的子二值栅格影像,分别将各个子二值栅格影像作为二值栅格影像执行本实施例提供的三维露头模型确定过程。
118.步骤102:基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标。
119.具体地,所述缝洞对象可以是裂缝线状对象或孔洞面状对象,裂缝线状对象可以为二值栅格影像中的裂缝线状多边形影像,孔洞面状对象可以为二值栅格影像中的孔洞面状多边形影像;所述二值栅格影像中可以包含有多个缝洞对象,且多个缝洞对象中可以包括裂缝线状对象和/或孔洞面状对象。所述剖面图像的高度单位和宽度单位为像素。所述缝洞顶点为所述缝洞对象的顶点。
120.步骤103:应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标。
121.具体地,应用所述不规则三角网模型和各个所述缝洞顶点各自对应的二维纹理坐标,得到各个所述缝洞顶点的三维全局坐标,其中,每个所述缝洞顶点对应有二维纹理坐标和三维全局坐标。应用所述不规则三角网模型和各个所述缝洞顶点各自对应的二维纹理坐标,得到所述不规则三角网模型与各个所述缝洞对象之间交点的三维全局坐标。
122.步骤104:根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型。
123.具体地,可以将所述缝洞顶点的三维全局坐标和交点的三维全局坐标作为特征点,将所述剖面图像映射在所述不规则三角网模型上,以生成所述目标碳酸盐岩露头对应的包含有缝洞图形特征的三维露头模型。
124.由上述描述可知,本实施例提供的三维露头模型确定方法,通过获取目标碳酸盐岩露头的剖面图像和不规则三角网模型,可以确定该目标碳酸盐岩露头中缝洞对象的各个顶点的三维全局坐标,以及与不规则三角网模型交点的三维全局坐标。能够实现野外露头结构特征最大限度的模拟、刻画与重现,提高确定三维露头模型的可靠性和效率,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性。
125.为了提高获取缝洞顶点的二维纹理坐标的准确性,进而提高接下来应用可靠的二维纹理坐标确定三维露头模型的准确性,在本技术一个实施例中,参见图2,步骤102包括:
126.步骤201:获取所述二值栅格影像中缝洞对象的栅格数据。
127.步骤202:应用所述栅格数据,得到各个所述缝洞顶点的二维影像坐标。
128.具体地,从所述二值栅格影像中获取缝洞对象的栅格数据,应用所述缝洞对象的栅格数据,得到该缝洞对象的缝洞顶点对应的二维影像坐标。
129.步骤203:基于所述二维影像坐标、剖面图像的高度和宽度,得到各个所述缝洞顶点各自对应的二维纹理坐标。
130.具体地,可以基于所述剖面图像的高度、宽度和所述缝洞顶点的二维影像坐标,得到该缝洞顶点对应的二维纹理坐标。将缝洞顶点p的二维影像坐标(i,j)带入转换公式:
[0131][0132]
其中,h、w分别代表剖面图像的高度与宽度,在顶点像素坐标系中,原点取图像左上角,i、j分别代表行、列数,水平向右列数递增,竖直向下行数递增,得到缝洞顶点p的二维纹理坐标(u,v)。
[0133]
为了提高获取缝洞顶点的三维全局坐标,以及不规则三角网模型与各个所述缝洞对象之间交点的三维全局坐标的准确性,进而提高接下来应用可靠的三维全局坐标确定三维露头模型的准确性,在本技术一个实施例中,参见图3,步骤103包括:
[0134]
步骤301:从所述不规则三角网模型中获取所述缝洞顶点对应的三角形。
[0135]
步骤302:应用各个所述缝洞顶点各自对应的三角形和二维纹理坐标,得到各个所述缝洞顶点的三维全局坐标。
[0136]
具体地,可以应用任一所述缝洞顶点对应的三角形和二维纹理坐标,得到该缝洞顶点的三维全局坐标。
[0137]
步骤303:应用各个所述缝洞顶点各自对应的二维纹理坐标,得到所述不规则三角网模型与各个所述缝洞对象之间交点的三维全局坐标。
[0138]
具体地,可以应用任一所述缝洞顶点的二维纹理坐标,得到所述不规则三角网模型与该缝洞对象之间交点的三维全局坐标。根据缝洞对象的各个缝洞顶点对应的二维纹理
坐标,计算出缝洞对象与不规则三角网模型的交点纹理坐标,进行线性插值计算出交点的三维全局坐标。
[0139]
为了提高确定缝洞顶点对应的三角形的效率,进而提高确定三维露头模型的效率,在本技术一个实施例中,参见图4,步骤301包括:
[0140]
步骤401:根据所述缝洞对象的最小外接矩形和不规则三角网模型,确定所述缝洞对象对应的三角形集合,其中,所述不规则三角网模型包含有多个三角形。
[0141]
具体地,在所述二值栅格影像中确定缝洞对象的最小外接矩形,每个所述缝洞对象均有对应的最小外接矩形,所述不规则三角网模型包含有多个三角形,在所述不规则三角网模型上应用该最小外接矩形筛选三角形,得到三角形集合s。筛选规则如下:基于所述三角形和最小外接矩形的各个顶点的二维纹理坐标,

若三角形的三个顶点的横坐标最小值大于最小外接矩形上各点横坐标的最大值;

三角形的三个顶点的横坐标最大值小于最小外接矩形上各点横坐标的最小值;

三角形的三个顶点的纵坐标最小值大于最小外接矩形上各点纵坐标的最大值;

三角形的三个顶点的纵坐标最大值小于最小外接矩形上各点纵坐标的最小值,均不满足以上四种情况的三角形将会被保留组成三角形集合s。
[0142]
步骤402:从所述三角形集合中,获取对应的缝洞对象的各个所述缝洞顶点各自对应的三角形。
[0143]
具体地,从所述三角形集合中,获取该三角形集合对应的缝洞对象的各个缝洞顶点各自对应的三角形;以缝洞对象p的各个缝洞顶点为单位,在三角形集合s中,判断某一个顶点a'所属的三角形t,判断步骤如下:在三角形集合s中筛选出包含缝洞顶点的各个三角形;确定在各个所述三角形中确定包含有顶点a'的三角形t,其中,三角形t包含有顶点a'表示顶点a'在三角形t内或三角形t上。
[0144]
为了得到可靠的缝洞顶点的三维局部坐标和三维全局坐标,进而应用可靠的三维局部坐标和三维全局坐标提高接下来确定三维露头模型的可靠性,在本技术一个实施例中,参见图5,步骤302包括:
[0145]
步骤501:获取所述三角形的三角形顶点对应的三维全局坐标和二维纹理坐标。
[0146]
步骤502:根据所述三角形的三角形顶点对应的三维全局坐标,得到所述不规则三角网模型对应的三维全局坐标系到该三角形对应的三维局部坐标系的旋转矩阵。
[0147]
具体地,可以将三维全局坐标系的y轴旋转到与所述三角形法向量一致的方向,得到所述旋转矩阵。
[0148]
其中,所述不规则三角网模型对应的三维全局坐标系可以是世界坐标系。
[0149]
步骤503:基于所述三角形顶点对应的三维全局坐标和所述旋转矩阵,得到该三角形顶点对应的三维局部坐标。
[0150]
具体地,可以根据所述三角形的各个三角形顶点的三维全局坐标,得到所述旋转矩阵;根据所述旋转矩阵和所述三角形顶点对应的三维全局坐标,得到所述三角形的各个三角形顶点的三维局部坐标;每个三角形顶点有对应的三维全局坐标、三维局部坐标和二维纹理坐标,所述三角形顶点对应的三维全局坐标和二维纹理坐标可根据所述不规则三角形模型确定,所述三角形顶点即三角形的顶点。假设所述三角形的三个三角形顶点分别为p1、p2和p3,根据p1、p2和p3的三维全局坐标和下列公式,得到所述三角形对应的三个单位向量
[0151][0152]
假设根据和可以确定所述旋转矩阵r:
[0153][0154]
可以根据下列公式得到所述三角形顶点的三维局部坐标:
[0155][0156]
其中(x',y',z')为三角形的三维局部坐标,在三维局部坐标系下整个三角面上的y'为常量。
[0157]
步骤504:基于所述三角形顶点对应的三维局部坐标和二维纹理坐标,得到所述三角形对应的目标仿射变换矩阵。
[0158]
具体地,假设目标仿射变换矩阵将所述三角形的三个三角形顶点对应的坐标组分别带入下列公式,可以得到所述三角形对应的目标仿射变换矩阵m,每个坐标组包括:唯一的三角形顶点对应的三维局部坐标和二维纹理坐标。
[0159][0160]
其中,(u',v')为三角形顶点对应的二维纹理坐标,(x',y',z')为三角形顶点的三维局部坐标,在三维局部坐标系下整个三角面上的y'为常量,所以只需考虑(u',v')与(y',z')的转换关系。。
[0161]
步骤505:应用所述三角形对应的目标仿射变换矩阵,以及该三角形对应的缝洞顶点的二维纹理坐标,得到该缝洞顶点的三维局部坐标。
[0162]
具体地,可以根据下列公式得到所述缝洞顶点的三维局部坐标:
[0163][0164]
其中,m为所述目标仿射变换矩阵,(u,v)为缝洞顶点的二维纹理坐标,(x1,y1,z1)为缝洞顶点的三维局部坐标,由于局部坐标系下整个三角面上的y'为常量,直接得到y1=
y'。
[0165]
步骤506:基于所述缝洞顶点的三维局部坐标和所述旋转矩阵,得到该缝洞顶点的三维全局坐标。
[0166]
具体地,可以先得到所述旋转矩阵的逆矩阵,根据所述缝洞顶点的三维局部坐标和所述旋转矩阵的逆矩阵,得到该缝洞顶点的三维全局坐标;可以根据下列公式得到所述缝洞顶点的三维全局坐标:
[0167][0168]
其中,r-1
为所述旋转矩阵的逆矩阵,(x1,y1,z1)为缝洞顶点的三维局部坐标,(x,y,z)为所述缝洞顶点的三维全局坐标。
[0169]
为了提高获取所述缝洞顶点各自对应的二维影像坐标的可靠性和效率,同时节省占用内存,在本技术一个实施例中,参见图6,步骤202包括:
[0170]
步骤601:按照预设的未标记点确定顺序,从所述二值栅格影像中的多个未标记点中确定目标未标记点,若所述目标未标记点对应的缝洞对象为裂缝线状对象,则执行遍历步骤:判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点,若是,则记录以该目标未标记点为起始点至所述相邻的未标记点的方向,判断该方向与前一次记录的方向是否一致;若所述方向与前一次记录的方向不一致,则将所述目标未标记点对应的栅格数据转换为二维影像坐标并保存,同时将所述目标未标记点修改为已标记点。
[0171]
具体地,所述未标记点确定顺序可根据实际需要进行设置,例如,可以按照先从左往右,后从上到下的顺序查找所述二值栅格影像中的各个像素点,若第一次出现未标记点,则确定为目标未标记点;所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记,每个未标记点对应一个像素点。所述方向可以是左上、左下、左、右上、右下、右、上和下中的一个方向。所述前一次记录的方向可以是上一次执行所述遍历步骤且对应的缝洞对象与本次执行遍历步骤对应的缝洞对象相同时记录的方向;可以理解的是,若不存在前一次记录的方向,即当前的所述目标未标记点为对应的缝洞对象的起点,则将该目标未标记点对应的栅格数据转换为二维影像坐标并保存,将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤。
[0172]
其中,与所述目标未标记点相邻的未标记点是指除所述目标未标记点对应的前一目标未标记点之外的与所述目标未标记点相邻的未标记点,可以在将所述目标未标记点对应的栅格数据转换为二维影像坐标之后,将所述目标未标记点修改为已标记点,能够避免重复遍历,以提高效率。
[0173]
为了进一步提高获取所述缝洞顶点各自对应的二维影像坐标的效率,所述判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点,可以包含有:判断在前一次记录的方向上是否存在与所述目标未标记点相邻的未标记点,若否,则判断旋转预设角度后的方向上是否存在所述目标未标记点相邻的未标记点。所述预设角度可根据实际需要进行设置,本技术对此不作限制。每次搜索到相邻点时,会将方向进行记录,在下一次搜寻相邻点的时候,会率先搜寻下一点的此方向,若没有搜索到,然后再顺时针依次搜索,可以大大减少寻找的次数,提高效率。
[0174]
步骤602:将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的未标记点。
[0175]
可以理解的是,若所述目标未标记点不存在相邻的未标记点,则表示已确定当前缝洞对象的各个顶点的二维影像坐标,可以结束当前缝洞对象的操作,执行下一缝洞对象的操作。
[0176]
步骤603:根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点,其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
[0177]
为了进一步减少内存资源的占用,若所述方向与前一次记录的方向一致,则将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的标记点。
[0178]
由上述描述可知,本实施例提供的三维露头模型确定方法,在遍历过程中自动简化线要素,只保留同一条线段的首尾两点,最大程度保留曲线的特征点(折点),达到裂缝矢量图层数据压缩的效果。
[0179]
为了进一步说明本方案,在本技术一个应用实例中,参见图7,步骤202包括:
[0180]
步骤701:按照预设的未标记点确定顺序,确定所述二值栅格影像中的目标未标记点。
[0181]
步骤702:若所述目标未标记点对应的缝洞对象为裂缝线状对象,则执行遍历步骤,即步骤703。
[0182]
步骤7021:若所述目标未标记点对应的缝洞对象为孔洞面状对象,则执行轮廓检测步骤:应用cvfindcontours函数对该孔洞面状对象进行轮廓检测,得到该孔洞面状对象的缝洞顶点的栅格数据对应的二维影像坐标。步骤7021执行完成后执行步骤708。
[0183]
步骤703:判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点。若是,则执行步骤704,否则执行步骤708。
[0184]
步骤704:记录以所述目标未标记点为起始点至所述相邻的未标记点的方向。
[0185]
步骤705:判断所述方向与前一次记录的方向是否一致且所述目标未标记点不是所述缝洞对象的起点,若否,则执行步骤706;若是,则直接执行步骤706。
[0186]
具体地,所述缝洞对象的起点可以是第一次执行该缝洞对象对应的遍历步骤时的目标未标记点。
[0187]
步骤706:将所述目标未标记点对应的栅格数据转换为二维影像坐标并保存,同时将所述目标未标记点修改为已标记点,同时将所述目标未标记点修改为已标记点。
[0188]
步骤707:将所述相邻的未标记点作为所述目标未标记点,再次执行步骤703。
[0189]
步骤708:根据所述预设的未标记点确定顺序,判断在所述二值栅格影像中是否存在下一目标未标记点;若是,则执行步骤709,若否,则结束当前操作。
[0190]
步骤709:判断所述下一目标未标记点所属的缝洞对象是否为裂缝线状对象。若是,则将所述下一目标未标记点作为目标未标记点再次执行步骤703;若否,则将所述下一目标未标记点作为目标未标记点再次执行步骤7021。
[0191]
为了进一步提高获取所述缝洞顶点各自对应的二维影像坐标的可靠性和效率,在
本技术一个实施例中,参见图8,所述三维露头模型确定方法还包括:
[0192]
步骤801:若所述目标未标记点对应的缝洞对象为孔洞面状对象,则执行轮廓检测步骤:应用cvfindcontours函数对该孔洞面状对象进行轮廓检测,得到该孔洞面状对象的缝洞顶点的栅格数据对应的二维影像坐标。
[0193]
其中,所述cvfindcontours函数为opencv图像处理库提供的。
[0194]
步骤802:根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
[0195]
进一步地,参见图8,在步骤802之后,还可以包括步骤803:若所述下一目标未标记点对应的缝洞对象为孔洞面状对象,则再次执行所述轮廓检测步骤。
[0196]
为了进一步说明本方案,本技术还提供一种三维露头模型确定方法的应用实例,具体包含有如下内容:
[0197]
s100:输入碳酸盐岩露头剖面照片上缝洞特征二维线、面对象提取结果二值影像栅格数据,且将缝洞线、面栅格影像进行自定义行(n)、列(m)数的切割,切割成相同规格的n
×
m个栅格影像,在一种举例中,所述碳酸盐岩露头剖面照片可以如图14所示。
[0198]
s200:利用改进的八方向深度遍历算法,对步骤s100中得到的n
×
m个栅格影像,针对裂缝线状对象栅格数据转矢量数据,将裂缝线状对象各顶点二维影像坐标以裂缝为单位保存在.txt文件中,s200具体包含有:
[0199]
s201:寻找栅格影像中第一个黑色的点。
[0200]
s202:从这个点开始延伸向八方向搜索曲线,每找到一个点,设为点a,记录检索方向并保存。
[0201]
s203:判断此方向与上次保存的方向是否一致,若一致,且点a不为裂缝线状对象的起点,则不将点a保存进deque《point》双队列,否则将点a的二维影像坐标(i,j)保存进deque《point》双队列,而后变白,以防止重复寻找。
[0202]
s204:搜索到一个没有相邻点的点,则将该没有相邻点的点作为一个顶点保存在deque《point》双队列中,表示搜索完成,将此裂缝线状对象保存。
[0203]
s205:搜索另一裂缝线状对象,直到全部遍历完成。
[0204]
具体地,针对露头表面裂缝栅格数据转矢量数据,改进的八方向深度遍历算法采用deque《point》双队列来描述曲线,且要求输入的处理图像是一张细化后二值图像,其中曲线宽度为1像素,颜色为黑色,如图9所示,自定义八方向可以为方向1至方向8,用户可以根据实际情况进行调整。所述改进的八方向深度遍历算法具体描述如下:
[0205]
1.寻找栅格影像中第一个黑色的点;2.从这个点开始延伸向八方向搜索曲线,每找到一个点,记录检索方向并保存;3.判断此方向与上次保存的方向是否一致,若一致,且此点不为线对象的起点,则不将此点保存进deque《point》双队列,否则将此点二维影像坐标保存进deque《point》双队列,而后变白(防止重复寻找);4.搜索到一个没有相邻点的点,表示搜索完成,将此裂缝线状对象保存;5.搜索另一裂缝线状对象,直到全部遍历完成。
[0206]
参见图10,应用八方向深度遍历算法遍历栅格影像过程具体包括:
[0207]
s1:初始化vector《deque《cv::point》》lines:初始化用于存储所有线(裂缝)对象
的向量(数组),该向量存储有所有的线对象line;s2:初始化deque《cv::point》line:初始化用于存储一条线(裂缝)的双向队列,该双向队列里存储有线上的每一个顶点;令搜索方向d1=1;s3:判断是否寻找到第一个黑色点p1,若是,则执行步骤s4,否则结束当前操作;s4:将p1加入line;s5:从p1点的d1方向开始向八方向检索;s6:判断是否找到黑色点p,若是,则执行步骤s7,否则执行步骤s9;s7:记录方向d,d={1,2,3,4,5,6,7,8};令p1=p;将p点变白;s8:判断d1==d,若是,则执行步骤s5,否则,执行步骤s4;s9:将line加入lines。
[0208]
改进的八方向深度遍历算法具有以下两点突出优势:一、每次搜索到相邻点时,会将方向进行记录,在下一次搜寻相邻点的时候,会率先搜寻下一点的此方向,若没有搜索到,然后再顺时针依次搜索,这样大大减少寻找的次数,提高效率;二、该算法在遍历过程中自动简化线要素,只保留同一条线段的首尾两点,最大程度保留曲线的特征点(折点),达到裂缝矢量图层数据压缩的效果。
[0209]
s300:利用opencv图像处理库提供的函数cvfindcontours,对步骤s100中得到的n
×
m个栅格影像,针对孔洞面状对象进行轮廓检测,获取孔洞面对象顶点的二维影像坐标(i,j),以孔洞为单位保存在.txt文件中。
[0210]
s400:读取.txt文件,以缝洞多边形为单位,该缝洞多边形可以是上述裂缝线状对象或孔洞面状对象,所述裂缝线状对象即裂缝线状多边形,所述孔洞面状对象即孔洞面状多边形。图15是一种举例中的加载露头孔洞面状多边形图层的碳酸盐岩露头剖面图像,a1至a3均为孔洞面状多边形,图16是一种举例中的加载露头裂缝线状多边形图层的碳酸盐岩露头剖面图像,b1至b3均为裂缝线状多边形。针对某一个缝洞多边形p,将步骤s200或s300中得到的缝洞多边形p的顶点二维影像坐标(i,j)带入转换公式:其中h、w分别代表图片的高度与宽度,得到二维纹理坐标(u,v)。
[0211]
具体地,在本应用实例中,顶点在各个坐标系下的坐标进行统一说明:影像坐标系下点坐标为(i,j);纹理坐标系下缝洞顶点的二维纹理坐标为(u,v),三角形顶点的二维纹理坐标为(u',v');三维局部坐标系下缝洞顶点的三维局部坐标为(x1,y1,z1),三角形顶点的三维局部坐标为(x',y',z');三维全局坐标系下缝洞顶点的三维全局坐标为(x,y,z),三角形顶点的三维全局坐标为(x2,y2,z2)。
[0212]
在缝洞矢量多边形顶点影像坐标(i,j)转纹理坐标(u,v)的过程中,参见图11,在影像坐标系,即顶点像素坐标系中,原点取图像左上角,i、j分别代表行、列数,水平向右列数递增,竖直向下行数递增,而在纹理坐标系中,坐标系原点却取图像左下角,u、v分别代表横纵坐标,水平向右u递增,竖直向上v递增,并且取值范围为(0,0)到(1,1)。故转换公式为:其中h、w分别代表图片的高度与宽度。
[0213]
s500:求出缝洞多边形p的外包矩形,在碳酸盐岩露头tin上,即在上述不规则三角网模型上利用外包矩形筛选三角形,得到三角形集合s。
[0214]
s600:再以缝洞多边形p的各个顶点为单位,在三角形集合s中,判断某一个顶点a'所属的三角形t,针对三角形t,基于三角形t的顶点三维全局坐标(x2,y2,z2),计算其旋转矩阵r及r的逆矩阵r-1
,利用旋转矩阵r对三角形t的3个顶点进行旋转变换,得到顶点三维局部坐标(x',y',z'),其中y'均相同,记录并保存,并结合三角形t的顶点纹理坐标(u',v'),带入公式:求得仿射变换矩阵m。
[0215]
具体地,纹理坐标系与三维局部坐标系间建立关联(仿射变换)的过程包括:通过上述转换已知露头模型tin三角面的3个顶点的三维局部坐标和纹理坐标,本应用实例假设模型中三角面与其对应纹理空间中的三角面是仿射变换关系,因此可根据三角形顶点三维局部坐标(x',y',z')与纹理坐标(u',v'),建立仿射变换关系,求解仿射变换矩阵m。仿射变换矩阵:为求出仿射变换矩阵m,可建立矩阵运算公式:此时经过以上三维全局坐标向三维局部坐标变换后,同一三角形上各点y'相同,均为常量yc,因此不用考虑。接下来将三角形三个顶点三维局部坐标与纹理坐标带入公式,解出参数a、b、c、d、m、n,得到仿射变换矩阵m。
[0216]
s700:利用步骤s600中求得的仿射变换矩阵m,将缝洞多边形p的顶点a'的二维纹理坐标(u,v)带入公式:进行仿射变换,得到其三维局部坐标(x1,y1,z1);再结合步骤s600中求得的旋转矩阵r的逆矩阵r-1
,带入公式:
[0217]
通过旋转变换求解出顶点a'的三维全局坐标(x,y,z)并保存为.txt文件;返回步骤s600,继续遍历缝洞多边形p的下一个顶点,直到遍历完所有顶点。
[0218]
具体地,本应用实例中,三维全局坐标系与三维局部坐标系间建立关联(三维坐标系旋转)的过程包括:已知露头模型tin中每个三角形的3个顶点的三维全局坐标(x2,y2,z2)和纹理坐标(u',v'),假设模型中三角面与其对应纹理空间中的三角面是仿射变换关系,因此为了保持三维局部坐标系与纹理坐标系匹配,首先需要对三维坐标系进行旋转,求出旋转矩阵r。
[0219]
本应用实例将坐标旋转至y轴与三角面法向量一致方向,自定义x轴与z轴方向,根据旋转变换,得到三维局部坐标下三个顶点的坐标值。如图12所示,选取三角形p1p3边所指uz方向作为局部坐标系z轴正方向,将三角形平面法向量n所指方向uy方向作为局部坐标系y轴正方向,故垂直于z轴与y轴所成平面ux方向作为局部坐标系x轴正方向。
[0220]
则旋转矩阵r可以直接表示为:参见图12,已知三角形的顶点
p1、p2、p3的三维全局坐标,求新坐标轴xyz在原坐标系下的三个单位向量p1、p2、p3的三维全局坐标,求新坐标轴xyz在原坐标系下的三个单位向量则表示为:
[0221][0222]
此时根据矩阵运算公式:建立三维全局坐标系与三维局部坐标系间坐标变换关系,此时局部坐标系下三角形面与坐标轴x、z所成平面平行,故三角面上各个点的y'值相同,均为常量。
[0223]
s800:针对缝洞多边形p,根据步骤s400中计算出的缝洞多边形p的顶点二维纹理坐标(u,v),计算出多边形p与碳酸盐岩露头tin的交点纹理坐标(u1,v1),将交点在相邻的三角网顶点上根据纹理坐标线性插值计算出交点的三维全局坐标(x3,y3,z3),并保存至.txt文件。
[0224]
具体地,本应用实例在露头模型tin上点影像坐标系、纹理坐标系、三维局部坐标系和三维全局坐标系之间建立关联。对于需要映射的点,当输入该点的影像坐标,便可以方便计算其纹理坐标,然后通过确定该点所属露头模型tin三角形,根据三角形顶点三维全局与纹理坐标,计算出旋转矩阵r与仿射变换矩阵m,最终只需将该点纹理坐标进行仿射变换与旋转变换的逆变换,就可得到该点的三维全局坐标。
[0225]
s900:回到步骤s400,遍历下一个缝洞多边形,直到遍历完所有缝洞多边形,继续下一步骤。
[0226]
s110:读取.txt文件,根据缝洞多边形顶点与交点的三维全局坐标生成.shp文件。
[0227]
具体地,可以根据所述.shp文件,确定所述碳酸盐岩露头对应的三维露头模型。
[0228]
由上述描述可知,本应用实例提供的三维露头模型确定方法,在二维缝洞线、面栅格影像切割的基础上利用改进的八方向深度遍历算法与cvfindcontours函数进行缝洞多边形栅格数据向矢量数据转换,能够大大提高多边形栅格数据特征点检索与转换的效率;利用仿射变换和三维坐标系旋转等方法建立二维影像与三维模型之间的映射关系,将二维缝洞矢量图形特征点影像坐标转至纹理坐标,再转至三维局部坐标,最终成功转至三维全局坐标并生成缝洞三维.shp图层文件,实现矢量缝洞特征在三维数字露头上的无缝叠合;为了实现缝洞矢量对象的精确化描述,不仅仅将缝洞多边形的顶点作为特征点,且利用线性插值方法计算出缝洞线、面多边形与碳酸盐岩露头tin交点的三维模型全局坐标一并作为特征点映射到碳酸盐岩露头模型表面,能够达到野外露头结构特征最大限度的模拟、刻画与重现。
[0229]
为了进一步说明本方案,本技术还提供一种三维露头模型确定方法的具体应用实例,包括:
[0230]
s10:首先将缝洞线、面栅格二值化影像进行自定义行(n)、列(m)数的切割,切割成相同规格的n
×
m个栅格影像。考虑到原始的缝洞线、面栅格影像像素点较多,例如本具体应用实例中图像大小为宽度:7264像素、高度:5440像素,若要对图像的逐个要素进行遍历检索,则算法的效率非常低下,为此将原始图像切割成32行与32列,即切割成宽度:227像素、高度:170像素的n
×
m个相同规格的图像进行存储。
[0231]
s20:对步骤s10中得到的32
×
32个二值化影像进行裂缝线状对象栅格数据转矢量数据,获取裂缝线状对象顶点的二维影像坐标(i,j)。利用改进的八方向深度遍历方法对裂缝线状对象进行遍历,最终获取裂缝线状对象顶点的二维影像坐标,再进行影像坐标拼接,并以缝洞多边形为单位进行存储,保存在.txt文件中。
[0232]
s30:对步骤s10中得到的32
×
32个二值化影像进行孔洞面状对象栅格数据转矢量数据,获取孔洞面状对象顶点的二维影像坐标(i,j)。采用利用opencv图像处理库提供的cvfindcontours函数检测出物体的轮廓,获取孔洞面要素顶点二维影像坐标,保存在.txt文件中。
[0233]
s40:读取.txt文件,获取n个缝洞多边形二维影像坐标,以缝洞多边形为单位,针对某一个多边形p,将步骤s20、s30中得到的缝洞多边形顶点二维影像坐标(i,j)带入转换公式:本具体应用实例中,例中图片宽w=7264像素,高h=5440像素,通过计算,得到多边形顶点二维纹理坐标(u,v)。
[0234]
s50:求出多边形p的外包矩形,在碳酸盐岩露头tin上利用外包矩形筛选三角形,得到三角形集合s。筛选规则如下:

若三角形三个顶点横坐标u'最小值大于外包矩形上各点横坐标的最大值;

三角形三个顶点横坐标u'最大值小于外包矩形上各点横坐标的最小值;

三角形三个顶点纵坐标v'最小值大于外包矩形上各点纵坐标的最大值;

三角形三个顶点纵坐标v'最大值小于外包矩形上各点纵坐标的最小值,均不满足以上4中情况的三角形将会被保留组成集合s。
[0235]
s60:再以多边形p的各个顶点为单位,在集合s中,判断某一个顶点a'所属三角形t,判断步骤如下:

在集合s中筛选出外包矩形包含顶点的三角形;

判断顶点是否在三角形内或三角形上。针对三角形t,基于三角形t顶点三维全局坐标(x2,y2,z2),计算其旋转矩阵r及r的逆矩阵,利用旋转矩阵r对三角形t的3个顶点进行旋转变换,得到顶点三维局部坐标(x',y',z'),其中y'均相同,记录并保存,并结合三角形t顶点纹理坐标(u',v'),带入公式:求解出仿射变换矩阵m。
[0236]
s70:利用步骤s60中求解的仿射变换矩阵m,把多边形p的顶点a'纹理坐标(u,v)带入公式:进行仿射变换,得到其三维局部坐标(x1,y1,z1);再结合步骤s60中求得的旋转矩阵r的逆矩阵r-1
,带入公式:通过旋转变换求解出顶点a'的三维
全局坐标(x,y,z)并保存为.txt文件;返回步骤s60,继续遍历多边形p下一个顶点,直到遍历完所有顶点。
[0237]
s80:针对多边形p,根据步骤s40中计算出的多边形p顶点二维纹理坐标(u,v),计算出多边形p与碳酸盐岩露头tin的交点纹理坐标(u1,v1),将交点在相邻的三角网顶点上根据纹理坐标线性插值计算出交点的三维全局坐标(x3,y3,z3),并保存至.txt文件。
[0238]
s90:回到步骤s40,遍历下一个多边形,直到遍历完所有多边形,继续下一步骤。
[0239]
s91:读取.txt文件,根据缝洞多边形顶点与交点的三维全局坐标生成.shp文件。
[0240]
s92:根据所述.shp文件,确定所述碳酸盐岩露头中缝洞图形特征对应的三维模型。
[0241]
由上述描述可知,本应用实例提供的三维露头模型确定方法,能够在二维影像坐标系与三维模型全局坐标系间建立关联,将各种地质专题信息融入模型,实现基于仿射变换的影像与三维模型坐标映射,能够提高三维露头模型的可靠性,进而提高应用三维露头模型确定地下矿物油藏和反映地质运动的准确性。
[0242]
为了进一步说明本方案,本技术还提供一种三维露头模型确定方法中影像坐标与三维模型全局坐标转换过程的具体应用实例,参见图13,该具体应用实例包括:
[0243]
s01:读取缝洞多边形顶点.txt文件,获取n个多边形。
[0244]
s02:第m个多边形顶点影像坐标转纹理坐标。
[0245]
s03:求出第m个多边形的外包矩形,在tin上利用外包矩形筛选三角形,得到三角形集合s。
[0246]
s04:判断第m个多边形第k个顶点所属三角形l:1在集合s中筛选出外包矩形包含顶点的三角形;2判断顶点是否在三角形内或三角形上。
[0247]
s05:计算三角形l的旋转矩阵r、仿射变换矩阵m。
[0248]
s06:多边形顶点纹理坐标转三维全局坐标。
[0249]
s07:缝洞多边形与tin求交点,并进行线性插值求得交点三维全局坐标。
[0250]
s08:缝洞多边形保存为.shp文件。
[0251]
由上述描述可知,本具体应用实例提供的影像坐标与三维模型全局坐标转换过程,在仿射变换、三维坐标系旋转的基础上,针对需要映射的缝洞矢量多边形,根据该多边形顶点所在露头tin三角形的三个顶点的二维影像坐标和三维模型坐标建立二三维变换关系,再映射到多边形内该顶点,总体过程涉及:顶点影像坐标向纹理坐标转换;再由纹理坐标向三维局部坐标转换;最终由三维局部坐标向三维模型全局坐标转换。
[0252]
从软件层面来说,为了提高三维露头模型的可靠性,进而提高应用三维露头模型确定地下矿物油藏和反映地质运动的准确性,本技术提供一种用于实现所述三维露头模型确定方法中全部或部分内容的三维露头模型确定装置的实施例,参见图17,所述三维露头模型确定装置具体包含有如下内容:
[0253]
获取模块10,用于获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像。
[0254]
纹理坐标获取模块20,用于基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标。
[0255]
全局坐标获取模块30,用于应用所述不规则三角网模型和二维纹理坐标,得到所
述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标。
[0256]
确定模块40,用于根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型。
[0257]
在本技术一个实施例中,参见图18,所述纹理坐标获取模块20,包括:
[0258]
栅格数据获取单元21,用于获取所述二值栅格影像中缝洞对象的栅格数据。
[0259]
影像坐标获取单元22,用于应用所述栅格数据,得到各个所述缝洞顶点的二维影像坐标。
[0260]
纹理坐标获取单元23,用于基于所述二维影像坐标、剖面图像的高度和宽度,得到各个所述缝洞顶点各自对应的二维纹理坐标。
[0261]
在本技术一个实施例中,参见图19,所述全局坐标获取模块30,包括:
[0262]
三角形获取单元31,用于从所述不规则三角网模型中获取所述缝洞顶点对应的三角形;
[0263]
第一全局坐标获取单元32,用于应用各个所述缝洞顶点各自对应的三角形和二维纹理坐标,得到各个所述缝洞顶点的三维全局坐标。
[0264]
第二全局坐标获取单元33,用于应用各个所述缝洞顶点各自对应的二维纹理坐标,得到所述不规则三角网模型与各个所述缝洞对象之间交点的三维全局坐标。
[0265]
在本技术一个实施例中,所述三角形获取单元,用于执行以下内容:
[0266]
根据所述缝洞对象的最小外接矩形和不规则三角网模型,确定所述缝洞对象对应的三角形集合,其中,所述不规则三角网模型包含有多个三角形。
[0267]
从所述三角形集合中,获取对应的缝洞对象的各个所述缝洞顶点各自对应的三角形。
[0268]
在本技术一个实施例中,所述第一全局坐标获取单元,用于执行以下内容:
[0269]
获取所述三角形的三角形顶点对应的三维全局坐标和二维纹理坐标。
[0270]
根据所述三角形的三角形顶点对应的三维全局坐标,得到所述不规则三角网模型对应的三维全局坐标系到该三角形对应的三维局部坐标系的旋转矩阵。
[0271]
基于所述三角形顶点对应的三维全局坐标和所述旋转矩阵,得到该三角形顶点对应的三维局部坐标。
[0272]
基于所述三角形顶点对应的三维局部坐标和二维纹理坐标,得到所述三角形对应的目标仿射变换矩阵。
[0273]
应用所述三角形对应的目标仿射变换矩阵,以及该三角形对应的缝洞顶点的二维纹理坐标,得到该缝洞顶点的三维局部坐标。
[0274]
基于所述缝洞顶点的三维局部坐标和所述旋转矩阵,得到该缝洞顶点的三维全局坐标。
[0275]
在本技术一个实施例中,所述影像坐标获取单元,用于执行以下内容:
[0276]
按照预设的未标记点确定顺序,确定所述二值栅格影像中的目标未标记点,若所述目标未标记点对应的缝洞对象为裂缝线状对象,则执行遍历步骤:判断在所述二值栅格影像中是否存在与所述目标未标记点相邻的未标记点,若是,则记录以该目标未标记点为起始点至所述相邻的未标记点的方向,判断该方向与前一次记录的方向是否一致;若所述
方向与前一次记录的方向不一致,则将所述目标未标记点对应的栅格数据转换为二维影像坐标并保存,同时将所述目标未标记点修改为已标记点。
[0277]
将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的未标记点。
[0278]
根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
[0279]
在本技术一个实施例中,所述影像坐标获取单元,还用于执行以下内容:
[0280]
若所述方向与前一次记录的方向一致,则将所述相邻的未标记点作为所述目标未标记点再次执行所述遍历步骤,直至所述目标未标记点不存在相邻的标记点。
[0281]
在本技术一个实施例中,所述影像坐标获取单元,还用于执行以下内容:
[0282]
若所述目标未标记点对应的缝洞对象为孔洞面状对象,则执行轮廓检测步骤:
[0283]
应用cvfindcontours函数对该孔洞面状对象进行轮廓检测,得到该孔洞面状对象的缝洞顶点的栅格数据对应的二维影像坐标。
[0284]
根据所述预设的未标记点确定顺序,确定所述二值栅格影像中的下一目标未标记点,若该下一目标未标记点对应的缝洞对象为裂缝线状对象,则再次执行所述遍历步骤直至遍历所述二值栅格影像中的各个未标记点;其中,所述未标记点为所述二值栅格影像中的缝洞对象对应的像素点且该像素点未被标记。
[0285]
在本技术一个实施例中,所述影像坐标获取单元,还用于若所述下一目标未标记点对应的缝洞对象为孔洞面状对象,则再次执行所述轮廓检测步骤。
[0286]
本说明书提供的三维露头模型确定装置的实施例具体可以用于执行上述三维露头模型确定方法的实施例的处理流程,其功能在此不再赘述,可以参照上述三维露头模型确定方法实施例的详细描述。
[0287]
由上述描述可知,本技术提供的三维露头模型确定方法及装置,能够提高三维露头模型的可靠性,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性;具体地,还能够提高确定三维露头模型的准确性和效率,节省内存资源,能够提高野外露头结构特征模拟、刻画与重现的准确性。
[0288]
从硬件层面来说,为了提高三维露头模型确定的效率和灵活度,进而提高用户体验,本技术提供一种用于实现所述三维露头模型确定方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
[0289]
处理器(processor)、存储器(memory)、通信接口(communications interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述三维露头模型确定装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述三维露头模型确定方法的实施例及用于实现所述三维露头模型确定装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
[0290]
图20为本技术实施例的电子设备9600的系统构成的示意框图。如图20所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。
值得注意的是,该图20是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
[0291]
在本技术一个或多个实施例中,三维露头模型确定功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
[0292]
步骤101:获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像。
[0293]
步骤102:基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标。
[0294]
步骤103:应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标。
[0295]
步骤104:根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型。
[0296]
从上述描述可知,本技术的实施例提供的电子设备,能够提高三维露头模型的可靠性,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性。
[0297]
在另一个实施方式中,三维露头模型确定装置可以与中央处理器9100分开配置,例如可以将三维露头模型确定装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现三维露头模型确定功能。
[0298]
如图20所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图20中所示的所有部件;此外,电子设备9600还可以包括图20中没有示出的部件,可以参考现有技术。
[0299]
如图20所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
[0300]
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
[0301]
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
[0302]
该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
[0303]
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程
序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
[0304]
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
[0305]
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
[0306]
上述描述可知,本技术的实施例提供的电子设备,能够提高三维露头模型的可靠性,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性。
[0307]
本技术的实施例还提供能够实现上述实施例中的三维露头模型确定方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的三维露头模型确定方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
[0308]
步骤101:获取目标碳酸盐岩露头对应的剖面图像和不规则三角网模型,并对该剖面图像进行二值化处理后得到二值栅格影像。
[0309]
步骤102:基于所述剖面图像的高度和宽度,获得所述二值栅格影像中缝洞对象的各个缝洞顶点各自对应的二维纹理坐标。
[0310]
步骤103:应用所述不规则三角网模型和二维纹理坐标,得到所述不规则三角网模型与缝洞对象之间交点的三维全局坐标,以及各个所述缝洞顶点的三维全局坐标。
[0311]
步骤104:根据所述交点、缝洞顶点的三维全局坐标以及所述不规则三角网模型,确定所述目标碳酸盐岩露头对应的三维露头模型。
[0312]
从上述描述可知,本技术实施例提供的计算机可读存储介质,能够提高三维露头模型的可靠性,进而能够提高应用三维露头模型确定地下矿物油藏和反映地质运动的可靠性。
[0313]
本技术中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
[0314]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0315]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0316]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0317]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0318]
本技术中应用了具体实施例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献