基于OpenGL的三维数据点云处理开题报告
2020-04-14 15:06:10
1. 研究目的与意义(文献综述)
opengl(全写open graphics library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。
opengl#8482; 是行业领域中最为广泛接纳的 2d/3d 图形 api,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。opengl#8482; 是独立于视窗操作系统或其它操作系统的,亦是网络透明的。在包含cad、内容创作、能源、娱乐、游戏开发、制造业、制药业及虚拟现实等行业领域中,opengl#8482; 帮助程序员实现在 pc、工作站、超级计算机等硬件设备上的高性能、极具冲击力的高视觉表现力图形处理软件的开发。
opengl是个与硬件无关的软件接口,可以在不同的平台如windows 95、windows nt、unix、linux、macos、os/2之间进行移植。因此,支持opengl的软件具有很好的移植性,可以获得非常广泛的应用。由于opengl是图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。
2. 研究的基本内容与方案
本设计主要基于mfc开发平台进行操作,mfc(microsoftfoundationclasses)是微软基础类库的简称,是微软公司实现的一个c 类库,主要封装了大部分的windows api函数,vc 是微软公司开发的c/c 的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如devc 其中一个编译器内核就是gcc。 mfc除了是一个类库以外,还是一个框架,在vc 里新建一个mfc的工程,开发环境会自动产生许多文件,同时它使用了mfcxx.dll,封装mfc内核,所以代码看不到原本的sdk编程中的消息循环等等东西,mfc框架已经封装完成,这样就可以专心的考虑程序的逻辑,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率。但是mfc的封装很浅,所以效率上损失不大。
在c builder 平台上, 利用 opengl 编程, 可以方便 、快捷地实现点云的旋转、平移、缩放 、分组排序、重新采样以及构造曲线等一系列复杂的点云处理功能 ,避免了大量的矩阵运算 ,大大减少了程序代码长度,不但提高了编程效率, 增强了可读性, 而且提高了图形的显示效果。本次毕业设计在 windows 系统中将 vc 和 opengl 结合在一起,研发三维点云处理系统,实现三维模型建模的基本功能,且通过实际操作证明该系统的有效性,可读取任意一个数据完整的外部三维模型文件,即处理由三维扫描仪扫描得到的点云数据且显示该三维模型。由三维扫描仪得到的三维数据信息(点云数据)数据坐标信息量巨大,若在读取过程中出现冗余,则成本增加,耗时长,所以本论文设计的系统可分别由 stl、obj、ply 三种格式所具备的算法来减少冗余、缩短耗时,还原显示三维模型。
实验以 opengl 函数库、vc 6.0 为开发平台,创建 mfc 工程,设计与实现三维点云数据的处理系统。实验的目的是在可变范围内利用opengl实现三维数据点云的交互显示变换方法。该系统可读取三种格式的外部文件,不受终端限制,在任意安装 vc 6.0、opengl 的平台上均可操作。实验过程中设计编译语言后,运行程序得到一个model,利用 model 可读取外部文件,显示网格化的三维图形。利用 opengl 的函数库对所选取的三维图形进行处理,还原真实的三维图形。该系统设计过程中利用 opengl 方便、快捷、高效地实现了三种格式外部文件的三维点云数据的读取、网格显示、几何变换等。通过对鼠标的二维位置的变换,得到世界坐标系中三维旋转轴和旋转角度以及鼠标在世界坐标系中的三维位置,进而对三维模型进行平移、缩放、旋转操作。
3. 研究计划与安排
第1周—第4周搜集资料,撰写开题报告;
第5周—第6周论文开题;
第7周—第12周撰写论文初稿;
4. 参考文献(12篇以上)
[1] 邓嘉, 侯晨辉, 刁婉,等. 基于opengl的三维点云数据处理系统的设计与实现. 信息与电脑:理论版,2017(19)
[2] 晏海平, 吴禄慎, 陈华伟. 基于vc和opengl的三维点云处理软件系统设计. 计算机应用与软件,2014,31(6):177-180
[3] 马春艳, 柴华彬, 刘昌华. 基于opengl的点云三维可视化表达. 河南理工大学学报(自然科学版), 2009, 28(3):299-302.