因项目需要,在win10系统下,基于开源点云显示、编辑、处理框架CloudCompare进行一些点云处理的功能开发,参考了其他几篇技术博客,对整个插件开发的过程做一个记录。
文章目录
- 前言
- 1、带UI界面的自定义插件开发步骤
- 1.1 源代码里找到插件开发模板
- 1.2 修改文件夹qDSM下相应的文件名
- 1.2.1 修改CMakeLists文件
- 1.2.2 创建UI交互界面文件
- 1.2.3 更新资源.qrc文件和info.json文件
- 1.2.4 更新qDSM.h和qDSM.cpp程序文件
- 1.3 重编译源代码
- 2、总结
前言
CC(CloudCompare)的框架对于插件的开发有预留专门的插件接口,支持功能自定义的拓展,本文以QDSM插件开发为例,实现读取.las格式的点云,然后,基于PCL点云库,对点云进行栅格化处理,得到栅格化的二维数字表面模型DSM。
1、带UI界面的自定义插件开发步骤
1.1 源代码里找到插件开发模板
在源代码以下目录找到插件开发模板: ![在这里插入图片描述]() 复制ExamplePlugin文件夹,重命名为qDSM,在qDSM文件里面,应该有如下这些文件: ![在这里插入图片描述]()
1.2 修改文件夹qDSM下相应的文件名
1.2.1 修改CMakeLists文件
CMakeLists文件内容修改如下:
1.2.2 创建UI交互界面文件
在QT中设计交互界面DSMDlg.ui文件,这是一个自定义对话框类的ui界面,在配置工程文件的时候,会根据cmakefile中的(qt5_wrap_ui( generated_ui_list ${ui_list} )或者SET(CMAKE_AUTOUIC ON))语句,自动将这个.ui文件生成一个ui_DSMDlg.h文件。基于这个文件,修改ccDSMDlg.h,ccDSMDlg.cpp文件得到我们的自定义的对话框类ccDSMDlg。
如果要在插件中使用PCL或者OPENCV的API,在CMakePluginqDSM.cmake这里包含进去相关的库文件和头文件。如下所示:
1.2.3 更新资源.qrc文件和info.json文件
更改相关的类的名称以及路径如下:
1.2.4 更新qDSM.h和qDSM.cpp程序文件
除了更改相关的类的名称外,在qDSM.cpp的doAction{}函数内,添加自定义的函数代码进行数据处理即可。
1.3 重编译源代码