基于倾斜网格数据的图像生成方法及系统与流程

文档序号:30424992发布日期:2022-06-15 14:40阅读:150来源:国知局
基于倾斜网格数据的图像生成方法及系统与流程

1.本发明涉及图像处理技术领域,尤其涉及一种基于倾斜网格数据的图像生成方法及系统。


背景技术:

2.随着倾斜摄影技术的飞速发展,倾斜网格数据处理的数据量不断增加。倾斜网格数据的全局浏览的需求一直存在,因而特定视角的图像成为替代完整模型的显示方案。另一方面,固定视角的图像在数据分析、地图、测量领域也有相当大的需求。
3.然而在倾斜网格数据瓦块过大时,无法将这些数据瓦块同时加载显示到lod(层级细节)最精细层级,从而无法加载出大比例尺图。


技术实现要素:

4.本发明的主要目的在于提供一种基于倾斜网格数据的图像生成方法及系统,旨在解决现有无法加载出大比例尺图的技术问题。
5.为实现上述目的,本发明提供一种基于倾斜网格数据的图像生成方法,所述方法包括:根据多角度相机采集的大比例尺图片,获取所述图片的倾斜网格数据;根据对倾斜网格数据的二维网格分块,将所述大比例尺图片对应的数据大区域划分为多个小区域,并依次加载所述小区域对应的图片数据;根据所述小区域与所述大区域的数据关联关系,对所述小区域对应的所述图片数据进行拼接,获取大比例尺图。
6.此外,为实现上述目的,本发明还提供一种基于倾斜网格数据的图像生成系统,所述系统包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的基于倾斜网格数据的图像生成程序,其中所述基于倾斜网格数据的图像生成程序被所述处理器执行时,实现如上述的基于倾斜网格数据的图像生成方法的步骤。
7.本发明提供一种基于倾斜网格数据的图像生成方法,所述方法根据多角度相机采集的大比例尺图片,获取所述图片的倾斜网格数据;根据对倾斜网格数据的二维网格分块,将所述大比例尺图片对应的数据大区域划分为多个小区域,并依次加载所述小区域对应的图片数据;根据所述小区域与所述大区域的数据关联关系,对所述小区域对应的所述图片数据进行拼接,获取大比例尺图。通过上述方式,本发明通过对倾斜网格数据进行二维网格分块,将大比例尺图对应的数据大区域进行细分,通过加载细分后的小区域数据,实现大数据量的输出,并且通过对小区域数据的拼接和转换,获取大比例尺图。由此,基于二维网格分块以及对小区域数据的拼接和转换,能够有效减小数据的读取量,加快数据的读取速率,不仅实现了大比例尺图的快速加载,而且提高了输出的大比例尺图的图片质量,解决了现有无法加载出大比例尺图的技术问题。
附图说明
8.图1为本发明实施例方案中涉及的基于倾斜网格数据的图像生成系统的硬件结构
示意图;图2为本发明基于倾斜网格数据的图像生成方法第一实施例的流程示意图;图3为本实施例中多角度相机的姿态设置和位置计算的实施流程;图4为本发明基于倾斜网格数据的图像生成方法第二实施例的流程示意图;图5为本发明基于倾斜网格数据的图像生成方法第三实施例的流程示意图;图6为本发明本发明基于倾斜网格数据的图像生成方法第四实施例的流程示意图;图7为本发明本发明基于倾斜网格数据的图像生成方法第五实施例的流程示意图;图8为本发明本发明基于倾斜网格数据的图像生成方法第六实施例的流程示意图;图9为本发明本发明基于倾斜网格数据的图像生成方法第七实施例的流程示意图;本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
9.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
10.实施例一本发明实施例涉及的基于倾斜网格数据的图像生成方法主要应用于基于倾斜网格数据的图像生成系统,该基于倾斜网格数据的图像生成系统的数据处理设备可以是pc、便携计算机、移动终端等具有显示和处理功能的设备。
11.参照图1,图1为本发明实施例方案中涉及的基于倾斜网格数据的图像生成系统的硬件结构示意图。本发明实施例中,基于倾斜网格数据的图像生成系统可以包括处理器1001(例如cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口);存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
12.本领域技术人员可以理解,图1中示出的硬件结构并不构成对基于倾斜网格数据的图像生成系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
13.继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、网络通信模块以及基于倾斜网格数据的图像生成程序。
14.在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的基于倾斜网格数据的图像生成程序,并执行本发明实施例提供的基于倾斜网格数据的图像生成方法。
15.实施例二本发明实施例提供了一种基于倾斜网格数据的图像生成方法,所述方法应用于基
于倾斜网格数据的图像生成系统,所述系统包括至少一台相机。
16.参照图2,图2为本发明基于倾斜网格数据的图像生成方法第一实施例的流程示意图。
17.本实施例中,所述基于倾斜网格数据的图像生成方法包括以下步骤:步骤s10,根据多角度相机采集的大比例尺图片,获取所述图片的倾斜网格数据。
18.步骤s20,根据对倾斜网格数据的二维网格分块,将所述大比例尺图片对应的数据大区域划分为多个小区域,并依次加载所述小区域对应的图片数据。
19.本实施例中,处理器端读取相机采集的图片,获取图片对应的倾斜网格数据,通过对倾斜网格数据进行二维网格分块,将超大图出图视口需要覆盖的完整数据大区域,划分为多个小图出图视口需要覆盖的小区域。
20.进一步地,处理器对划分后的小区域的数据依次进行加载输出,将获取该小区域数据进行解码转换,获得相对应的小图。
21.步骤s30,根据所述小区域与所述大区域的数据关联关系,对所述小区域对应的所述图片数据进行拼接,获取大比例尺图。
22.本实施例中,通过二维网格分块中的数据与倾斜网格数据的对应关系,构建索引四叉树,从而实现在小区域出图时,能够快速获取小区域需要加载的对应瓦块,并且对所有瓦块进行快速而精准的拼接,进而获取精细的超大图。
23.本实施例中,通过对倾斜网格数据的二维网格分块,从而实现对大图对应的大区域进行小区域划分,通过对小区域对应数据的快速加载和输出,以及对获取的小区域对应的小图的拼接,从而实现无极比例尺大图的快速输出。进而解决了在倾斜网格数据瓦块过大时,无法将这些数据瓦块同时加载显示到lod(层级细节)最精细层级,从而无法加载出大比例尺图的问题;并且通过对数据的分化输出,能够提高大数据输出的效率,也即大比例尺图的出图效率。
24.进一步地,步骤s10之前还包括对多角度相机的姿态设置和位置计算,具体包括:通过设置所述多角度相机的俯仰角和偏航角参数,确定所述多角度相机的姿态;通过所述多角度相机的姿态与所述瓦块的三维包围盒的相对位置关系,确定平行投影矩阵的参数和所述多角度相机的位置。
25.参照图3,图3为本实施例中多角度相机的姿态设置和位置计算的实施流程。
26.本实施例中多角度相机姿态设置方法具体包括:步骤s01,初始化相机姿态。
27.俯仰角为相对水平方向的夹角,因此初始化相机即为:设定初始look向量为水平y轴方向(0,1,0),初始up向量为z轴方向(0,0,1),从而得到初始相机姿态。
28.步骤s02,添加俯仰角参数。
29.假设俯仰角为pitch;以y轴为旋转中心,旋转角为-pitch,计算获取俯仰角旋转矩阵。通过初始look向量与俯仰角旋转矩阵的相乘,获取俯仰角look向量;通过初始up向量与俯仰角旋转矩阵的相乘,获取俯仰角up向量。
30.步骤s03,添加偏航角参数。
31.假设偏航角为yaw;以z轴为旋转中心,旋转角为yaw,计算获取偏航角旋转矩阵。通过俯仰角look向量与偏航角旋转矩阵的相乘,获取偏航角look向量;通过俯仰角up向量与
偏航角旋转矩阵的相乘,获取偏航角up向量。
32.步骤s04,获取多角度相机姿态。
33.通过look向量与up向量的叉乘,获取right向量。通过俯仰角look向量与俯仰角up向量的叉乘,获取俯仰角right向量;通过偏航角look向量与偏航角up向量的叉乘,获取偏航角right向量。以俯仰角right向量和偏航角right向量设置多角度相机的姿态。
34.步骤s05,设置相机平行投影矩阵。
35.规定多相机的视线穿过所有瓦块的三维包围盒的中心位置。包围盒的8个顶点位置分别减去包围盒中心位置,获取8个向量。8个向量分别点乘look向量,获得的结果中最小值为near,最大值为far;8个向量分别点乘up向量,获得的结果中最小值为bottom,最大值为top;8个向量分别点乘right向量,获得的结果中最小值为left,最大值为right;其中,near、far、left、right、bottom、top即为相机平行投影矩阵的参数。
36.步骤s06,计算相机位置。
37.包围盒中心位置加上look与near相乘的结果向量即为相机的位置。
38.本实施例中,通过对相机姿态的初始化,调节相机的坐标系,以相机初始姿态为准,对相机姿态进行设置调整,保证相机姿态设置的准确性,便于后期的数据计算和匹配;通过设置相机的俯仰角、偏航角参数,获取多角度相机的姿态,并且通过多相机与瓦块对应的三维包围盒的位置关系,获取相机的平行投影矩阵,使得平行投影矩阵最大程度地覆盖所有瓦块数据。
39.可以理解地是,本实施例中通过设置俯仰角、偏航角参数获取相机的位姿只是作为一种实施方式,不代表只能通过设置俯仰角、偏航角参数,才能获取相机姿态,本领域技术人员应当理解,相机姿态可以通过多种方式获取,比如图像特征点提取等方式。
40.参照图4,图4为本发明基于倾斜网格数据的图像生成方法第二实施例的流程示意图。
41.本实施例中,步骤s20还包括:步骤s21,根据所述大比例尺图片,对所述倾斜网格数据进行二维网格分块;步骤s22,根据所述二维网格分块对应的数据信息,确定所述多角度相机当前位姿对应的平行投影矩阵。
42.步骤s23,根据所述平行投影矩阵和比例尺,计算超大图对应的完整数据大区域的二维尺寸。
43.本实施例中,通过所有瓦块的三维包围盒的数据获取当前相机位姿下的平行投影矩阵参数:left、right、bottom、top;以left与right的绝对值的和值作为widthall,以bottom与top的绝对值的和值作为heightall;以widthall与比例尺的乘积结果作为超大图对应的完整数据大区域二维尺寸的宽度widthtifall,以heightall与比例尺的乘积结果作为超大图对应的完整数据大区域二维尺寸的高度heighttifall。
44.步骤s24,根据所述大区域的二维尺寸,确定多个小区域的二维尺寸和所述小区域的数量。
45.本实施例中,设置每个小区域二维尺寸的宽度和高度分别为widthitem和heightitem(比如1920和1080)。计算widthtifall/widthitem和heighttifall/heightitem,取整获取大区域的宽和高分别划分的小图个数w和h;其中,对不能取整的余下
边界用更小的二维尺寸宽度和高度进行划分。对w*h个区域设置对应的相机平行投影矩阵和视口参数,获取渲染到的图片数据,将图片数据写入到大图的对应位置。
46.参照图5,图5为本发明基于倾斜网格数据的图像生成方法第三实施例的流程示意图。
47.本实施例中,在步骤s12之前,还包括:步骤s111,根据所述二维网格分块的分布顺序,依次加载所述分块对应的瓦块数据;步骤s112,根据所述瓦块数据,记录并计算所有所述瓦块的三维包围盒;本实施例中,按照二维网格分块的分布顺序,依次读取分块对应的瓦块数据,根据瓦块数据之间的位置关系,记录每一个瓦块的三维包围盒,并计算所有瓦块的三维包围盒。
48.步骤s113,根据所述瓦块和所述三维包围盒,建立索引四叉树,并存储。
49.本实施例中,根据二维网格分块的分布顺序,对分块对应的瓦块数据进行有序加载,能够避免后续出图时,出现小图输出位置错误的问题,便于对输出小图的快速匹配。根据瓦块的数据,记录每一个瓦块的三维包围盒,根据瓦块数据以及三维包围盒数据之间的关联关系,构建索引四叉树,便于在输出小图时,对小图对应的瓦块数据进行快速索引和匹配,从而加快小图的出图和拼接速率,提高大图的出图效率。
50.进一步地,参照图6,图6为本发明本发明基于倾斜网格数据的图像生成方法第四实施例的流程示意图。
51.本实施例中,步骤s113包括:步骤s31,根据所述三维包围盒和所述瓦块,确定所述索引四叉树的根节点;所有瓦片的三维包围盒和所有的瓦块对应索引四叉树的根节点。
52.步骤s32,根据所述根节点对应的所述瓦块数量,确定所述根节点对应的子节点;步骤s33,根据所述子节点中包含的所述瓦块,确定所述子节点对应的三维包围盒。
53.本实施例中,根据瓦块与三维包围盒之间的关系,对索引四叉树的根节点进行扩展,构建子节点。若当前节点对应的瓦块数为1,则停止对该节点进行子节点构建;反之,若当前节点对应的瓦块数大于1,则以当前节点包围盒的长、宽除以2,高度不变,均匀四分,创建四个子节点,并将四个小的子包围盒分别作为四个子节点的三维包围盒。
54.进一步地,遍历当前节点对应的所有瓦块,判断每个瓦块包围盒是否被某个子节点包围盒完全包含,若包含,则将该瓦块划分到该子节点中;若瓦块包围盒不被所有子节点完全包含,则保留该瓦块,作为当前节点。划分完成后,删除瓦块数为0的子节点。
55.进一步地,根据每个子节点划分到的瓦块,重新计算每个子节点对应的三维包围盒。
56.进一步地,依次遍历当前节点的每个子节点(子节点数《=4),对子节点进行划分,直至每个子节点对应一个瓦块数,即完成索引四叉树的构建。
57.本实施例中,根据瓦块数据之间的关联关系,建立索引四叉树,每一个瓦块数据对应索引四叉树的一个节点,能够便于加载数据过程中,对瓦块数据的快速查找和匹配。同时,索引四叉树的每一个节点对应一个瓦块,以及该瓦块对应的三维包围盒,能够根据三维包围盒之间的关系查找到有关联的瓦块,便于瓦块数据的快速拼接。
58.参照图7,图7为本发明本发明基于倾斜网格数据的图像生成方法第五实施例的流程示意图。
59.本实施例中,步骤s113还包括:步骤s34,根据所述索引四叉树的层级分配,确定子树根节点;步骤s35,根据所述子树根节点,将所述索引四叉树拆分为多个索引子树;本实施例中,假设索引子树的层级数为n(包含子节点的索引子树层级数可以大于n),从索引四叉树根节点(即第0层)开始;假设当前节点层级为k,假设索引四叉树的最大层级数为max,k不为0,且max-k+1不是n的整数倍。
60.进一步地,若k不是指定层级,即当前节点层级不是索引子树的根节点,对当前节点层级不做处理。
61.进一步地,若k为指定层级,即当前节点层级为索引子树的根节点,则根据索引四叉树的最大层级数与(k+2n-1)的比值,确定子树的根节点。若索引四叉树的最大层级数小于(k+2n-1),则前序遍历完当前节点的所有子节点作为索引子树根节点;若索引四叉树的最大层级数大于等于(k+2n-1),则以前序遍历直到遍历完层级为(k+n-1)的节点,组成一个索引子树。依次遍历当前节点的每个子节点,划分索引子树。
62.步骤s36,根据所述索引子树的节点顺序,依次转换所述索引子树的文件格式,并存储。
63.本实施例中,步骤s36具体包括:根据任一索引子树最后一层子树节点,对其他索引子树的根节点进行匹配,确定所述任一索引子树对应的下一个索引子树;通过对所述任一索引子树最后一层子树节点以及所述下一个索引子树的根节点进行标记,将所述任一索引子树与其对应的所述下一个索引子树进行关联。
64.本实施例中,为方便理解,本实施例提供了osg三维引擎的实施方式进行举例说明:可选的,首先为索引子树根节点绑定一个对应的osg::lod节点。如果当前子树节点存在未划分到子树孩子节点的m个瓦块,则这些瓦块组成一个osg::group节点,即osg::group节点创建m个osg::pagedlod的子节点用来连接m个瓦块;再将osg::group节点作为孩子节点挂载到当前子树节点对应的osg::lod节点中。
65.进一步地,如果当前子树节点是索引子树的最后一层,且当前子树节点连接下一层索引子树。则将当前节点对应的osg::lod节点增加一个osg::pagedlod子节点指向下一个将被存储为文件的索引子树。
66.进一步地,为当前子树节点的每一个索引子树子节点创建对应的osg::lod节点。依次完成osg节点树的创建。
67.进一步地,osg节点树视口裁切设置:为每一个子树节点对应的osg::lod节点、每一个osg::lod节点连接的osg::group节点、每一个osg::group节点的子osg::pagedlod节点设置对应的三维包围盒中心和半径属性,并开启节点视口裁切属性。从而实现数据在osg对应视口下的加载和卸载。
68.进一步地,通过将索引子树的信息转换为osg节点树,将每一个索引子树存储出一个osg可加载文件,这些文件在osg中通过osg::padgelod调用加载。
69.其中,通过osg的api存储osg节点树的根节点的osg::lod为特定文件名。
70.本实施例中,由于瓦块数量过多,对应瓦块构建的索引四叉树结构庞大,对整个索引四叉树进行单个文件存储,在调度过程中会占用较大的io,使得调度时间长、效率低。而合适的子树层级数可以调优文件大小和文件数量,进一步减少瓦块索引过程中的数据读取量,所以将索引四叉树拆分为多个索引子树,存储为多个文件,能够加快对索引四叉树中的数据的调度,提高出图效率。
71.参照图8,图8为本发明本发明基于倾斜网格数据的图像生成方法第六实施例的流程示意图。
72.本实施例中,步骤s20还包括:步骤s201,根据所述索引子树的存储文件,获取所述瓦块和所述三维包围盒的数据信息;步骤s202,根据所述存储文件中存储的所述数据信息,确定所述多角度相机当前位姿对应的平行投影矩阵参数;步骤s203,根据所述平行投影矩阵参数和比例尺,确定所述大区域的二维尺寸;步骤s204,根据所述大区域的二维尺寸,设置多个小区域的二维尺寸,确定所述小区域的数量。
73.本实施例中,处理器读取索引子树的存储文件,并进行数据解码和调用,从而获取索引子树中各节点对应的瓦块和三维包围盒的数据信息,并且获取当前相机位姿下的平行投影矩阵参数,根据平行投影矩阵参数与比例尺的乘积结果,获取超大图对应的完整数据大区域二维尺寸;然后计算设置最合适的小区域的二维尺寸(比如1920和1080),进而可以确定划分出的小区域的数量,每个小区域对应一定的瓦块数量,也就与索引子树文件存在关联,根据索引子树的节点顺序,即可精确查找对应的小区域的图片数据。
74.参照图9,图9为本发明本发明基于倾斜网格数据的图像生成方法第七实施例的流程示意图。
75.本实施例中,步骤s30包括:步骤s301,根据所述小区域的数量和所述小区域的二维尺寸,确定对应的小区域平行投影矩阵;本实施例中,小区域是大区域的一部分,相应地,每个小区域对应一个小区域的平行投影矩阵,根据小区域在大区域所处的位置和小区域的二维尺寸大小,即可计算获取小区域对应的小区域平行投影矩阵。
76.步骤s302,根据所述小区域平行投影矩阵与所述索引四叉树的对应关系,确定所述小区域对应的图片数据;本实施例中,小区域可以根据对应的小区域平行投影矩阵,与索引四叉树的瓦块信息进行匹配,从而获取该小区域对应的瓦块和三维包围盒数据,从而确定该小区域所对应的图片数据。
77.步骤s303,根据所述索引四叉树的节点关系,将所述小区域图片数据依次输出到大图的对应位置进行拼接,获取无极比例尺大图。
78.本实施例中,小区域根据对应的瓦块和三维包围盒数据,输出小图,而小区域的数据与索引四叉树拆分的索引子树相匹配,索引子树之间存在关联顺序,所以小区域对应的
图片数据是按照索引四叉树的节点顺序输出的;且索引四叉树中的节点对应于大图的分块位置,所以小区域输出的小图根据索引四叉树的节点顺序依次匹配到对应的位置处,进而拼接形成无极比例尺大图。
79.本实施例中,通过将大图划分为小图进行输出,能够有效减小数据加载和卸载的负担,从而加大图片的输出效率,同时,通过索引四叉树对小图进行数据匹配和位置指引,能够有效减小了小图输出顺序错误的风险,避免输出操作的校验操作,提高了输出大图的效率和质量。
80.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
81.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
82.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
83.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
84.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1