一种三维空间虚拟数据高清截图方法与流程

文档序号:14718949发布日期:2018-06-17 00:09阅读:260来源:国知局

本发明涉及计算机技术领域,尤其涉及了一种三维空间虚拟数据高清截图方法。



背景技术:

传统针对海量三维数据进行高清截图,需要对数据进行完全的加载,有时就会因为内存资源的耗尽,导致图片效果的异常或者是图片不能正常生成。高清截图方案中,将屏幕区域切分为多块数据分别截图,是通用的做法,但该做法的实现前提是针对一小片的数据进行的,可能是对一片小区的放大,也可能是对一幢房屋的放大,并没有针对内存进行管理,因此,在这些截图过程中,很难发生内存资源占用过高的问题,稳定性基本可以得到保证。但是,在整个城市、甚至全国的数据需要截图时,会遇到的大数据量瓶颈问题,在高清截图过程中会出现内存占用高、截图稳定性差的问题。



技术实现要素:

本发明针对现有技术中内存占用高、截图不稳定的缺点,提供了一种三维空间虚拟数据高清截图方法。

为了解决上述技术问题,本发明通过下述技术方案得以解决:

一种三维空间虚拟数据高清截图方法,将屏幕区域图像数据进行水平方向和垂直方向的N等分操作,划分得到N*N个等大小的屏幕数据区域块,每个屏幕数据区域块称之为图像单元,以n行n列进行标识,包括以下步骤:

(1)设置n行n列图像单元的投影关系、屏幕分辨率,并计算n行n列图像单元的视口大小、视景体大小;

(2)在某行某列的图像单元中,进行数据区域分割;

(3)数据区域分割包括以下控制参数:V表示数据预定加载阈值,m表示垂直方向上从视点位置开始划分区域的长度;首先,从距离视点0到m的范围内,进行一次数据的预加载操作,当获取的数据实际加载数值C超过设定的预定加载阈值V时,减小m值,进行区域的重新划分,若重新划分后,C值仍旧超过V值,再次进行减小m值操作,如此反复,直到C值稳定在V值范围内,m值得到确定的m’值;当C值在V值范围内,则开始进行三维数据的加载,数据加载完成后,进行渲染,渲染结果保存到图像帧缓存中;

(4)然后数据区域继续划分,范围从m’到2m’,判断C值是否在V值范围内,如果是,则数据区域划分范围到相邻的2m’到3m’;范围从2m’到3m’,判断C值是否在V值范围内,如果是,则数据区域划分范围到相邻的3m’到4m’,并重复此操作;若C值超过V值,则进行步骤3的操作,下一个区域划分范围的m’值依据上一个且相邻区域的m’值确认,直到划分范围达到预先设定的极限距离时停止,则单个图像单元截图完成;

(5)将图像单元保存在图像帧缓存中的图像信息进行处理,图像帧缓存每帧接收到图像信息后,图像帧缓存保存图像的深度缓存、颜色缓存信息,对比接收到的图像信息,通过根据深度缓存信息进行像素替换,同一位置的像素,深度信息大的不能替换深度信息小的;

(6)图像帧缓存处理最终结果就是该图像单元最终的成像信息,将该图像单元的成像信息写入到图片文件中进行保存,同时标记该图片文件为n行n列的数据;

(7)进行下一个图像单元的截图操作,重复步骤3到步骤6的操作;

(8)待所有的图像单元均写成图片文件后,会存在N*N张的图片;

(9)图片融合拼接:图片为N*N个分散文件,基本拼接单位为A*A,根据行列数N*N、基本拼接单位A*A计算出图片数量G*G,G=int(N/A),然后开始循环对每个拼接单位进行处理;在每个基本拼接单位中,首先进行水平方向上的图片拼接融合,将同一行上的图片数据合并成一张图片,每行依次进行合并;待所用行合并完成后,然后进行垂直方向上的图片拼接融合,最终将A*A张图片合成为一张图片;当N整除不了A的时候,按照A*A的拼接规则,多出N%A行列的数据,最终图片数量要保持在G*G=int(N/A)*int(N/A),因此把它们归到它们附近的拼接单元中,即处于边缘的拼接单元的大小在A*A和2A*2A之间。

作为优选,投影关系为正交投影或透视投影。

作为优选,在某次区域划分后,C值与V值的比例为小于或等于0.2时,进行m值增长。

本发明由于采用了以上技术方案,具有显著的技术效果:通过本专利的区域分割技术,有效利用内存空间及图像成像规律,在处理效率和内存空间利用上达到了一个平衡,通过分区域的截图,避免了截图过程中内存过高而导致图像不稳定;而图片融合技术则有效处理成果图片最终的张数和单张分辨率之间的关系,方便后期的处理操作。

具体实施方式

下面实施例对本发明作进一步详细描述。

实施例1

一种三维空间虚拟数据高清截图方法,将屏幕区域图像数据进行水平方向和垂直方向的N等分操作,划分得到N*N个等大小的屏幕数据区域块,每个屏幕数据区域块称之为图像单元,以n行n列进行标识,因为截图是截取整个屏幕的场景图像数据,需要将屏幕均分成N*N块,并且成果图片分辨率必须为屏幕大小的N倍,然后在每个屏幕数据区域块上,通过设置特定的截图参数,将该屏幕数据区域块的数据放大N倍、截图,生成的图片大小和整个屏幕大小相同,也是将成效效果放大N倍,从而实现高清截图的功能,还包括以下步骤:

(1)设置n行n列图像单元的投影关系、屏幕分辨率,投影关系为正交投影,并计算n行n列图像单元的视口大小、视景体大小;

(2)在某行某列的图像单元中,进行数据区域分割;

(3)数据区域分割包括以下控制参数:V表示数据预定加载阈值,m表示垂直方向上从视点位置开始划分区域的长度;首先,从距离视点0到m的范围内,进行一次数据的预加载操作,当获取的数据实际加载数值C超过设定的预定加载阈值V时,减小m值,进行区域的重新划分,若重新划分后,C值仍旧超过V值,再次进行减小m值操作,如此反复,直到C值稳定在V值范围内,m值得到确定的m’值;当C值在V值范围内,则开始进行三维数据的加载,数据加载完成后,进行渲染,渲染结果保存到图像帧缓存中;

(4)然后数据区域继续划分,范围从m’到2m’,判断C值是否在V值范围内,如果是,则数据区域划分范围到相邻的2m’到3m’;范围从2m’到3m’,判断C值是否在V值范围内,如果是,则数据区域划分范围到相邻的3m’到4m’,并重复此操作;若C值超过V值,则进行步骤3的操作,下一个区域划分范围的m’值依据上一个且相邻区域的m’值确认,直到划分范围达到预先设定的极限距离时停止,则单个图像单元截图完成;

(5)将图像单元保存在图像帧缓存中的图像信息进行处理,图像帧缓存每帧接收到图像信息后,图像帧缓存保存图像的深度缓存、颜色缓存信息,对比接收到的图像信息,通过根据深度缓存信息进行像素替换,同一位置的像素,深度信息大的不能替换深度信息小的,也就是深度信息越小,像素替换优先级越高;

(6)图像帧缓存处理最终结果就是该图像单元最终的成像信息,将该图像单元的成像信息写入到图片文件中进行保存,同时标记该图片文件为n行n列的数据;

(7)进行下一个图像单元的截图操作,重复步骤3到步骤6的操作;

(8)待所有的图像单元均写成图片文件后,会存在N*N张的图片;

(9)图片融合拼接:图片为N*N个分散文件,基本拼接单位为A*A,根据行列数N*N、基本拼接单位A*A计算出图片数量G*G,G=int(N/A),然后开始循环对每个拼接单位进行处理;在每个基本拼接单位中,首先进行水平方向上的图片拼接融合,将同一行上的图片数据合并成一张图片,每行依次进行合并;待所用行合并完成后,然后进行垂直方向上的图片拼接融合,最终将A*A张图片合成为一张图片;当N整除不了A的时候,按照A*A的拼接规则,多出N%A行列的数据,最终图片数量要保持在G*G=int(N/A)*int(N/A),因此把它们归到它们附近的拼接单元中,即处于边缘的拼接单元的大小在A*A和2A*2A之间。

实施例2

同实施例1,所不同的是投影关系为透视投影。

实施例3

同实施例1,所不同的是在某次区域划分后,C值与V值的比例为等于0.2时,进行m值增长。

实施例4

一种三维空间虚拟数据高清截图方法,将屏幕区域图像数据进行水平方向和垂直方向的18等分操作,划分得到18*18个等大小的屏幕数据区域块,每个屏幕数据区域块称之为图像单元,以n行n列进行标识,因为截图是截取整个屏幕的场景图像数据,需要将屏幕均分成18*18块,并且成果图片分辨率必须为屏幕大小的18倍,然后在每个屏幕数据区域块上,通过设置特定的截图参数,将该屏幕数据区域块的数据放大18倍、截图,生成的图片大小和整个屏幕大小相同,也是将成效效果放大18倍,从而实现高清截图的功能,还包括以下步骤:

(1)设置n行n列图像单元的投影关系、屏幕分辨率,投影关系为正交投影,并计算n行n列图像单元的视口大小、视景体大小;

(2)在某行某列的图像单元中,进行数据区域分割;

(3)数据区域分割包括以下控制参数:V表示数据预定加载阈值,m表示垂直方向上从视点位置开始划分区域的长度,本实施例m为500米,V表示预定加载数据链表成员个数,预定加载数据链表成员个数为500个;首先,从距离视点0到500米的范围内,进行一次数据的预加载操作,当获取的数据实际加载数值C超过设定的预定加载阈值500个时,C为800个,减小m值,进行区域的重新划分,当m值减少时,C值也相应下降,若重新划分后,C值仍旧超过V值,再次进行减小m值操作,如此反复,直到C值稳定在V值范围内,m值得到确定的m’值,m’值为250米,C值也相应下降为400个;当C值在V值范围内,则开始进行三维数据的加载,数据加载完成后,进行渲染,渲染结果保存到图像帧缓存中;

(4)然后数据区域继续划分,范围从m’到2m’,判断C值是否在V值范围内,如果是,则数据区域划分范围到相邻的2m’到3m’;范围从2m’到3m’,判断C值是否在V值范围内,如果是,则数据区域划分范围到相邻的3m’到4m’,并重复此操作;若C值超过V值,则进行步骤3的操作,下一个区域划分范围的m’值依据上一个且相邻区域的m’值确认,直到划分范围达到预先设定的极限距离时停止,则单个图像单元截图完成;

(5)将图像单元保存在图像帧缓存中的图像信息进行处理,图像帧缓存每帧接收到图像信息后,图像帧缓存保存图像的深度缓存、颜色缓存信息,对比接收到的图像信息,通过根据深度缓存信息进行像素替换,同一位置的像素,深度信息大的不能替换深度信息小的,也就是深度信息越小,像素替换优先级越高;

(6)图像帧缓存处理最终结果就是该图像单元最终的成像信息,将该图像单元的成像信息写入到图片文件中进行保存,同时标记该图片文件为n行n列的数据;

(7)进行下一个图像单元的截图操作,重复步骤3到步骤6的操作;

(8)待所有的图像单元均写成图片文件后,会存在18*18张的图片;

(9)图片融合拼接:图片为18*18个分散文件,基本拼接单位为5*5,根据行列数18*18、基本拼接单位5*5计算出图片数量G*G,G=int(18/5)=3,然后开始循环对每个拼接单位进行处理;在每个基本拼接单位中,首先进行水平方向上的图片拼接融合,将同一行上的图片数据合并成一张图片,每行依次进行合并;待所用行合并完成后,然后进行垂直方向上的图片拼接融合,最终将25张图片合成为一张图片;当18整除不了5的时候,按照5*5的拼接规则,多出3行3列的数据,最终图片数量要保持在G*G=3*3=9,因此把它们归到它们附近的拼接单元中,即处于边缘的拼接单元的大小在5*5和10*10之间。

总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。

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