The invention discloses a fast loading and displaying method for massive point cloud data, which includes: pretreatment of data files, analysis and processing of original massive point cloud data files based on the principle of pyramid and octree implementation; calculation of the level after translation or scaling operation and comparison of the current scaling level, loading and displaying octree units that need to be updated, or The method of the present invention refers to pyramid structure, octree structure and multi-threading to realize the preprocessing of data files, combines the current scaling level with the required scaling level comparison, and solves the shortcomings of the traditional loading method, such as too long time consuming, insufficient memory, and improves the program addition by releasing the data that does not need to be displayed. The efficiency of loading massive point cloud data can be displayed quickly, which reduces the time needed for loading data, improves user experience and achieves the effect of fast loading and displaying massive point cloud data.
【技术实现步骤摘要】
一种用于海量的点云数据快速加载显示方法
本专利技术涉及数据处理领域,尤其涉及一种用于海量的点云数据快速加载显示方法。
技术介绍
正常的情况下,通过扫描设备(如三维激光扫描仪)对现实中的物体进行扫描后,会生成包含扫描物体的点云数据的文件(如txt格式),传统的加载方法是直接加载数据文件后在界面进行显示,这只能适用数据文件较小,点云数据量较小的情况,但如果数据文件包含的数据比较多(即数据量比较大,如扫描了上亿甚至数十亿的点数据),本身文件就占数十个G,这种情况下,加载这个文件将花费漫长的时间,而且以现有常用的计算机内存配置(通常8G到16G),未必能将文件中的数据完全读进内存当中,这意味着计算机内存耗尽,从而加载文件失败。再者,如果数据量过大,当软件进行某些处理后(如,用户对软件呈现的点云进行旋转或平移操作),软件进行刷新显示时间也变得漫长(通常的情况下,软件将出现卡顿,不能立即显示点云),所以传统的点云数据加载方法对于海量的点云数据文件并不友好。
技术实现思路
本专利技术针对现有技术中存在的问题,提供一种用于海量的点云数据快速加载显示方法,引用了金字塔结构,八叉树结构和多线程实现对数据文件的预处理,结合当前缩放等级和所需缩放的等级对比,通过释放不需要显示的数据解决了传统加载方法耗时过长,内存不足的缺点,提高了程序加载海量点云数据的效率,进行快速地显示,降低数据加载所需的时间,提升了用户体验,达到了海量点云数据快速加载显示的效果。为实现上述目的,本专利技术提供的技术方案如下:一种用于海量的点云数据快速加载显示方法,包括:S1,对数据文件进行预处理,利用金字塔和八叉 ...
【技术保护点】
1.一种用于海量的点云数据快速加载显示方法,其特征在于,包括:S1,对数据文件进行预处理,利用金字塔和八叉树实现原理,对原始具有海量点云数据文件进行分析处理;S2,对进行平移或缩放操作后的等级进行计算并对比当前缩放等级,加载显示需要更新的八叉树单元或者该等级下能够在显示范围内的所有八叉树单元。
【技术特征摘要】
1.一种用于海量的点云数据快速加载显示方法,其特征在于,包括:S1,对数据文件进行预处理,利用金字塔和八叉树实现原理,对原始具有海量点云数据文件进行分析处理;S2,对进行平移或缩放操作后的等级进行计算并对比当前缩放等级,加载显示需要更新的八叉树单元或者该等级下能够在显示范围内的所有八叉树单元。2.根据权利要求1所述的快速加载显示方法,其特征在于,所述步骤S1具体包括:S11,加载点云数据文件,读取一定数量的点数据,估算其点云的密度;S12,根据估算后的密度,估算其金字塔底层的缩放等级;S13,根据金字塔底层的缩放等级,计算该层的八叉树每个单元的大小;S14,读取点云数据文件中的每一个点数据,对每个点数据根据八叉树的生成原理划分到相应的单元中,保存到相应的单元文件中;S15,记录此时每个单元文件点数目,若存在某个单元文件的点数目大于设定的一个单元文件包含的最大点个数,而且估算的缩放等级还没有达到设定的最低缩放等级,则重复步骤S11;S16,根据当前层级计算其八叉树单元大小,从金字塔的下一层数据中,根据八叉树的原理,读取下一层中对应单元文件,对这些点数据进行采样抽稀处理,生成当前层新的单元文件;S17,构建金字塔到达顶层或者到达最高的缩放等级时结束,否则重复步骤S16。3.根据权利要求1所述的快速加载显示方法,其特征在于,所述步骤S2具体包括:S21,根据显示比例尺和显示范围计算其缩放等级及该缩放等级下能够在显示范围内的八叉树单元,读取相应预处理后的金字塔中的单元数据文件,进行显示;S22,根据用户进行平移或者缩放操作后的比例尺计算其缩放等级;S23,将步骤S22计算得出的等级与当前缩放等级比较,若相同,则根据当前的显示范围计算其需要更新的八叉树单元,若不同,则根据要加载的等级和显示范围,计算该缩放等级下能够在显示范围内的所有八叉树单元;S24,判断线程是否空闲,若是,则加载相应的金字塔单元数据文件,若否,则转到步骤S22。4.根据权利要求2所述的快速加载显示方法,其特征在于,所述步骤S12中估算底层缩放等级,当超过设定的最低缩放等级就让底层的缩放等级为设定最低缩放等级。5.根据权利要求2所述的快速加载显示方法,其特征在于,所述步骤S14中保存在单元的每个点数据信息包括该点数据的坐标值和颜色。6.根据权利要求3所述的快速加载显示方法,其特征在于,所述步骤S23中计算显示范围内的八叉树单元这一步骤还包括了确定需要加载的单元索引,根据缩放等级和单元索引加载相应的单元文件。7.根据权利要求3所述的快速加载显示方法,其特征在于,所述步骤S24...
【专利技术属性】
技术研发人员:王江林,文述生,闫少霞,肖浩威,李宁,周光海,徐丹龙,丁永祥,庄所增,潘伟峰,张珑耀,刘国光,郝志刚,陶超,韦锦超,闫志愿,黄伟健,
申请(专利权)人:广州南方卫星导航仪器有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。