因项目需要,在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文件内容修改如下:

cloudcompare生成DEM_c++

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。

cloudcompare生成DEM_点云_02


如果要在插件中使用PCL或者OPENCV的API,在CMakePluginqDSM.cmake这里包含进去相关的库文件和头文件。如下所示:

cloudcompare生成DEM_点云_03

1.2.3 更新资源.qrc文件和info.json文件

更改相关的类的名称以及路径如下:

cloudcompare生成DEM_qt_04


cloudcompare生成DEM_CloudCompare_05

1.2.4 更新qDSM.h和qDSM.cpp程序文件

除了更改相关的类的名称外,在qDSM.cpp的doAction{}函数内,添加自定义的函数代码进行数据处理即可。

cloudcompare生成DEM_点云_06

1.3 重编译源代码