APP下载

基于VTK的点云可视化

2014-12-11索春宝孙秀宁

中国科技纵横 2014年14期
关键词:数据格式数据文件可视化

索春宝 孙秀宁

(山东科技大学测绘科学与工程学院,山东青岛 266590)

基于VTK的点云可视化

索春宝 孙秀宁

(山东科技大学测绘科学与工程学院,山东青岛 266590)

针对.las格式的数据文件,给出了以QT为平台,基于VTK、libLAS的点云可视化方法,并利用该方法进行实验。经实验验证该方法灵活、方便,更便于对多功能交互的发掘和实现。

VTK 点云可视化 LAS数据读取

1 引言

激光扫描技术是近年来出现的新技术,它突破了单点测量方法,具有高效率、高精度的独特优势。激光扫描技术可以快速获取物体表面的空间点云数据,通过对点云数据的结构创建实现场景的渲染。随着激光扫描技术的不断发展和应用范围的不断扩大,激光扫描相关理论和技术的研究已经成为热点问题。散乱点云数据的可视化是激光扫描技术应用的一个重要环节。本文针对.las格式散乱点云数据文件,结合库的使用,实现点云的显示和基本的交互操作。

2 开发环境配置

本文以QT为开发工具,但QT并不能直接绘制、显示三维坐标点,故借助VTK来实现三维点坐标的绘制和显示。

2.1 VTK介绍

VTK(visualization toolkit)是由kitware团队创建和扩展的,开源的、可跨平台的可视化工具包,主要用于三维计算机图形、图像处理和可视化。VTK是在面向对象的基础上设计和实现的,采用c++构建核心内容。另外VTK能够进行自动语言转换,故可同时支持Tcl/Tk,Java和Python等多种语言。VTK作为可视化工具包使可视化应用更加普及,为人们提供了一种较简便、通用的可视化方式。它拥有丰富、多样的可视化算法:标量、矢量、张量、纹理和体积的可视化方法,和先进的建模技术:隐式建模,减少多边形,网格平滑,切割,描绘轮廓和Delaunay三角网等。除了可视化功能以外,VTK还拥有一套三维交互控件,涵盖了基本的点云显示时所需的人机交互操作,且可以进行交互操作的自定义。

2.2 linux下VTK库的配置

VTK官方网站http://www.vtk.org/为我们提供了source文件,首先利用Cmake对source文件进行编译,然后在平台下进行创建。

完成VTK的安装后,还需要在QT中进行配置:主要是路径的包含和库文件的添加:

图1 VTK Pipeline的可视化流程

图2.LAS数据文件数据提取流程

3 VTK可视化管线的设计

VTK的可视化管线设计是基于管线流的设计模式,将要处理的数据作为流动介质在管线中流动,不同的阶段对数据进行不同的处理,最终完成处理数据的显示。VTK的可视化管线设计如图1所示[1]。

在可视化过程中,首先确定数据源(DataSource),可以是利用vtk功能创建的数据源,更多的是数据文件,通过对数据文件的读取使数据以数据流的形式在管线中流动[2];选择适当的数据处理方法,使数据流到达过滤(Filter)阶段对数据进行处理,形成新的数据集;这时的数据已经不再是离散的点,而是具有一定的几何结构,接下来是几何数据到图形数据的转换阶段:映射(Mapper)阶段。可视化模型创建完毕,接下来是图形模型的建立,首先是图形数据的承载者角色(Actor),主要负责设置修饰效果;其次是渲染窗口(Renderer Window)的设置,主要有两个应用:渲染环境的设置和人机交互的实现;在一切准备就绪后就可以由渲染器(Renderer)发出Render()命令,进行渲染,实现数据的可视化。

完成点云数据的显示后,我们还需要实现对数据的多角度观察,也就是交互问题。在可视化管线中vtkRenderwindowInteractor类为我们提供了简便的实现交互的方式,根据需求,选择vtkInteractor Style的子类vtkInteractorStyleTrackballCamera来实现旋转、缩放、平移等交互操作。

VTK Pipeline采用串联方式将实现不同功能的各阶段连接起来,形成管线,方便数据流的流动:上一阶段的输出作为下一阶段的输入,不断延续下去,直到碰到Mapper或sink。随着科学技术的不断发展,数据格式多种多样,数据量急剧增加,这对科学可视化数据量和数据传播提出了很大的挑战[3]。

4 LAS数据读取

LAS数据文件包含的是标准LIDAR数据格式,现已发展为四个版本,分别是:LAS1.0,1.1,1.2,2.0(拟定版)[4]。随着版本的不同,其数据存储越来越灵活,信息越来越丰富。标准的LAS数据存储格式包含三个部分:公共文件头区,用于记录LAS文件的普通信息,如点的个数等;变长记录区,主要包含元数据,文件采用的坐标系等等;格式点集记录区,用于记录点的X、Y、Z和属性[5]。LAS数据文件的一般数据提取流程如图2所示。

LAS文件是二进制格式,但由于它有自己特定的文件头结构和数据组织,故需要专业软件进行读取。LibLAS是针对LAS文件的读与写的库,利用库函数可以方便、快捷的进行.las文件数据的读取。本文针对LAS数据文件,利用libLAS库的liblas::Reader实现文件内数据的读取,并将数据赋值给vtkPoints,从而传递到vtk可视化管线中。

5 结语

VTK支持并行处理,且是开源的,具有可移植性。在实践中,我们可以利用VTK,结合语言平台,实现多种功能。例如,我们可以利用QT平台的界面创建优势,结合VTK库可视化管线,进行数据成果展示,软件开发等。VTK的开源特性方便了我们添加自己需要的功能,为新功能的发掘和实现提供支持。另外,我们也可以在遵循VTK本身设计模式的基础上,定义新的类,嵌入其中,进一步完善VTK。

[1]许庆功,李昌华.VTK框架结构与运行机制的探讨[J].洛阳理工学院学报(自然科学版),2008,18(1):67-70.

[2] William J. Schroeder, Lisa S. Avila, Kenneth M. Martin. The Visualization Toolkit User's Guide[M], GE Corporate Research &Development.

[3] Will Schroeder, Ken Martin, Bill Lorensen. The Visualization Toolkit[M].USA, Pearson Education,Inc.

[4]刘春,姚银银,吴杭彬.机载激光扫描(LIDAR)标准数据格式(LAS)的分析与数据读取[J].遥感应用,2009:38-42.

[5]赵自明,史兵,田喜平,赵松.LAS格式解析及其数据的读取与显示[J].测绘技术装备,2010,12(3):17-20.

索春宝(1989—),男,硕士生,主要从事视觉/惯导组合导航方面的研究工作。孙秀宁(1989—),女,硕士生,主要研究方向为移动测量数据采集与处理。

索春宝。

猜你喜欢

数据格式数据文件可视化
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
在智能交通系统中PLC数据格式转换方法的研究
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具
论子函数在C语言数据格式输出中的应用
DWG与SHP数据格式互转换方法研究——以龙岩规划测绘数据为例