三维点云文件读取及可视化系统开发毕业论文
2021-04-19 01:20:54
摘 要
本文基于visual sdudio2013为平台,以Qt模块界面设计为基础,pcl为第三方库编程出一个可以读取.pcd,.ply和.obj等目前比较流行的点云格式文件,将所选文件显示在QVTKwidget插件上,用户可对点云文件进行一些基本操作,包括点选,撤销上一次点选以及删除点选,和框选,撤销上一次框选或删除框选框,并可以将所选点存储起来,以便实现相应的操作,所得本次设计结果对目前的点云文件的理解及交互操作有重要的指导意义。
论文主要研究了怎样实现对不同点云文件的读取,pcl(point cloud library)是目前比较新的点云文件的c 第三方库,使用官网提供的功能语句,实现相应的操作,这些功能目前主要在医疗及雷达点云文件的显示和运用中较为广泛,本文研究的内容实用性高,但在市场上不广泛,相关功能可开放性空间很大。
本文的特色:使用了vtk对Qt提供的第三方插件,将vtk的显示与交互功能植入到Qt所设计的显示模块,很大程度上改变了市场上此类软件交互功能欠缺的现状。
关键词:点云;pcl;Qt;可视化交互
Abstract
Based on visual sdudio2013 as the platform, based on the interface design of Qt module, PCL has programmed a point cloud format file that can read.Pcd,.Ply and.Obj, which can read.Pcd,.Ply and.Obj, and display the selected files on the QVTKwidget plug-in. The user can carry out some basic operations on the point cloud file, including the point selection and the withdrawal. A point selection and delete point selection, and the box selection, the last box selection or delete box selection box, and the selected points can be stored in order to achieve the corresponding operation. The results of this design have important guiding significance for the understanding and interaction of the current point cloud files.
This paper mainly studies how to realize the reading of different cloud files. PCL (point cloud Library) is a new c third party Library of a new point cloud file at present. It uses functional statements provided by the official network to implement the corresponding operation. These functions are widely used in the display and application of medical and radar point cloud files. The content of this paper is highly practical, but it is not widely used in the market.
The features of this article: using the third party plug-in provided by VTK to Qt, the display and interactive functions of VTK are implanted into the display module designed by Qt, which greatly changes the current situation of the lack of such software interaction in the market.
Key Words:cloud library;pcl;Qt;Visual interaction
目录
第1章 绪论 1
1.1课题研究背景及意义 1
1.2 国内外研究现状 1
1.3论文的主要工作与内容 2
第2章 开发平台的搭建 4
2.1面向对象可编程平台VS2013 4
2.2 应用程序的图形界面的开发框架QT 4
2.3三维点云文件显示引擎VTK 5
2.4点云库PCL 5
2.5开发环境的搭建和常见的配置问题 7
2.5.1软件界面开发环境的搭建 7
2.5.2环境搭建的常见问题 8
2.6本章小结 9
第3章QT软件界面开发 10
3.1 GUI的选择 10
3.2 工程的总体设计 12
3.2.1框架设计 12
3.2.2菜单栏 12
3.2.3快速工具栏 15
3.2.4主要功能模块 16
3.3本章总结 16
第4章 软件功能的实现 18
4.1三维可视化界面可视化设计 19
4.2文件的I/O 20
4.3文件的交互 21
4.3.1文件的点选及相关操作 21
4.3.2文件的框选及相关操作 22
4.3.3点云文件三维重建 23
4.4界面语言选项的实现 26
4.5帮助和关于 27
4.6本章小节 27
第5章 总结与展望 28
5.1工作总结 28
5.2工作展望 28
参考文献 29
附录 31
致谢 78
第1章 绪论
1.1课题研究背景及意义
近几年来,点云文件[1]得到越来越广泛的运用,随着互联网,计算机3S,虚拟现实等等技术的迅速发展,二维信息已不能满足社会和经济的需求。大量的三维点云文件需要被读取以及相关的应用。比如在雷达扫描的技术上,首先扫描设备将对地面进行扫描得到点云图像。但是这些点云图像不能直接得到应用,所以必须对这些文件进行相关的处理和操作,其中对点云文件的读取和可视化则显得相当的重要。三维空间信息已经成为很多工程不可或缺的一项工程环节[2]。尤其是在数字城市[3],逆向工程[4],虚拟现实[5]中,三维点云文件都相当重要,同样人机交互也越来越受到重视,比如面部识别等技术,需要提取点云文件的特征点,所以点云文件的点云操作也比较重要。所以本次课题的研究可以促进对点云文件的了解和其相关的操作。特别是可视化模块,通过本此设计,了解并掌握对的点选,框选,渲染,及相应的操作的开发方法。同时,本次设计在充分的研究后,利用Qt[6]设计界面,实现人机交互的基础。然后通过PCL第三方库进行功能开发,最终用户可以实现再PC机上对诸如pcd,ply,obj点云文件的打开与比较完整的可视化人机交互开发。该可视化系统的结构简单易懂。可操作性强。
1.2 国内外研究现状
开可视化系统开发上,国内目前较为成熟的MiniGUI。 MiniGUI 是北京飞漫软件技术有限公司开发的开源嵌入式 GUI,也是我国第一个有自主知识产权的产品。其主要特点就是小,占用的资源少,但具有较强伸缩性,可用于比较多的嵌入式系统。MiniGUI开发软件界面是最好的选择,但其后期维护麻烦,需要培养自己团队,做进一步优化。而且其兼容性不是很好,目前它还没有与主流的开源开发库有所接口,比如他不能和pcl一同使用。而目前国外有许多的开发环境:
Micro Windows[7]是开发比较早的一款嵌入式GUI,它可以在较小的平台或设备上运行软件图形界面。Micro Window采用的是分层设计,可以在最底层,鼠标,触摸屏,屏幕和键盘下驱动,程序提供了对物理的设备访问能力。在中间层中,实现各种API以适应不一样的应用环境。Micro Windows大部分都采用了以C语言为基础的开发代码,具有很好的可移植性,但因为使用了C语言,使得系统的运行效率得不到较大的提到
UC/GUI[8]是Micrium公司开发的比较通用的嵌入式GUI,它可以应用在单一任务环境中,也可以用于多个任务环境中,UC/GUI可以应用于任何的LCD控制器中和CPU的任意尺寸的物理显示或者模拟显示中,一开始开发出来的UC/GUI是开源的,但是现在的版本是需要收费的,是给用户提供使用库,UC/GUI比较的商业化,但是功能相对而言比较的简单。
GTK [9]是另一个著名的开源代码 GNU Image Manipulation Program (GIMP)的副产品而编写的。GTK 有两个重要的库:GLIB 和GDK。GDK 抽象了窗口管理,GLIB 是一个比较完整的工具集合,它包含了数据类型,类型转化,各种宏定义和字符串处理。但是,其开发的难度较大,目前一些功能如多点触控也跟不上,官方也无法保证兼容性。
FLTK[10](The Fast Light Tool Kit)为一个功能较为简单,能实现一些基本功能的 GUI 开发库。FLTK 可以定制,以满足不同的需求,拥有比较丰富的跨平台 GUI 构件,所以跨平台移植性比较好,使用也比较方便。但是,对于复杂的界面构件的设计因为资源支持不足而不能胜任。
QT为奇趣科技开发设计的基于C ,用户界面开发应用程序的框架,公司在 2008 年被诺
基亚收购,此后,跨越平台开发战略得到了加速。用户使用Qt只须要一次性开发应用程序界面,不需重新编写程序源代码,便能够跨越不同的桌面和嵌入式操作系统来部署这些应用程序。本次设计需要设计出一款通用性程度比较高的程序软件界面,Qt目前使用较为广泛,比如国内版的字处理器WPS就是以Qt作为开发平台,Qt开发简单易操作。
在点云文件的开发上,国内基本没有成熟的可开发系统,开发是基于C 的pcl第三方库,pcl已经是比较成熟的处理点云文件的第三方库,它可以实现文件的读取,保存,处理,显示和交互等多种操作。
1.3论文的主要工作与内容
本次论文主要是以C 编程为基础,对VTK,PCL等第三方库的功能语句做一些开发操作,需要熟悉了解第三方库的开发方式,及其如何使用其开发源代码。然后基于QT,融合QT和PCL设计出三维点云文件的可视化系统的开发。