因项目需要,在win10系统下,基于开源点云显示、编辑、处理框架CloudCompare进行一些点云处理的功能开发,参考了其他几篇技术博客,对整个插件开发的过程做一个记录。
前言
CC(CloudCompare)的框架对于插件的开发有预留专门的插件接口,支持功能自定义的拓展,本文以QDSM插件开发为例,实现读取.las格式的点云,然后,基于PCL点云库,对点云进行栅格化处理,得到栅格化的二维数字表面模型DSM。
1、带UI界面的自定义插件开发步骤
1.1 源代码里找到插件开发模板
在源代码以下目录找到插件开发模板: ![在这里插入图片描述](https://img-blog.csdnimg.cn/d62fb35b403c4ce8b4a97e4ba5594580.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGhlX2Fuc3dlcl9tYW5iYQ==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center) 复制ExamplePlugin文件夹,重命名为qDSM,在qDSM文件里面,应该有如下这些文件: ![在这里插入图片描述](https://img-blog.csdnimg.cn/47794b5598164406ba4e2d88aaebce8d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGhlX2Fuc3dlcl9tYW5iYQ==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
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 重编译源代码
参照https://editor.csdn.net/md/?articleId=120169582进行源代码编译得到新的CC程序。
2、总结
整个过程是比较繁琐的,也参考了很多前辈的博客 参考链接: CloudCompare插件编写一(插件框架) CloudCompare插件编写二(数据结构) CloudCompare插件编写三(算法实现)
|