CloudCompare学习(1)- CloudCompare 编译及普通插件实现

       最近由于工作需求,偏向点云算法库的学习。给定一些无序三维点,可以构建点云的三角网,接着赋纹理,如果算法足够稳健,也是很强大的,毕竟由一些点得到了一个模型。由于刚入门,从开源库和开源软件学起,首先学习软件的动作,接着结合源码进行分析。CloudCompare 是一款非常好的开源点云显示和处理软件,尤其是有比较好的框架,使其有很强的可扩展性,这点也值得学习。其采用GPL授权,使在此框架下开发的应用软件也必须开源,这点对商业公司可能不友好,但对广大码友还是很好的。

       下面主要从两个方面谈谈对CloudCompare的理解。首先是对其进行编译,接着手动实现一种点云抽稀的插件功能,从这两个方面初步迈入CompareCloud学习的殿堂。

      1、CloudCompare V2.12的编译

       1.1 源码下载

       源码可从CloudCompare官网,或github上下载,网址如下:

       http://www.cloudcompare.org/

       https://github.com/cloudcompare/cloudcompare

2.2 源码编译

        采用CMake进行编译,CMake可自行下载,如下图所示为CMake后的结果:

        

        Configure->Generate->OpenProject,接着生成工程中的install就生成成功,得到一个可执行的CloudCompare软件。当然这样得到的CloudCompare是比较简化的,可以通过勾选上图PLUGIN中的选项,来给软件添加对应的接口,同时需要配置所需要的三方库,如下图所示勾选PLUGIN_IO_QLAS_FWF。

        

       这样编译得到的CloudCompare可以实现las格式点云的导入和导出了。

       如下图所示为某一点云的显示:

        

2、CloudComapre点云抽稀插件的实现

        CLoudCompare提供了基于GL可视化的插件、基于IO读取的插件、普通函数插件的接口,并提供了基本范例,如下图所示:

         

         本文通过对普通函数插件的改写,得到插件工程PointThnningPlugin,实现点云抽稀的功能。包含三个步骤,如下:

         1)修改cmake文件,将CMakeLists.txt中工程名改为PointThnningPlugin,并在外部添加子工程PointThnningPlugin。

         2)修改插件描述文件,包括images图标、.qrc资源文件、info.文件。

         3)修改头文件和主程序,将头文件和主程序中出现ExamplePlugin的地方全部替换为PointThnningPlugin。

          4)在主程序中按钮回调函数doAction()中添加实现点云抽稀的算法。

         5)编译生成插件,即重新编译,并勾选PointThnningPlugin插件选项。

          最后编译得到的CloudCompare,如下图所示:

         

         1)点击按钮,2)得到抽稀参数输入框,3)输入抽稀参数。得到如下抽稀效果:

         

        抽稀后点云变为原始点云的20%。

       本文复现了一种随机抽稀算法,即通过八叉树构建分割三维空间,得到一定数量的空间格网,每个空间格网保留一个离空各自空间格网中心最近的点实现点云的抽稀。

        本次学习只学习了CloudCompare的表象,在其普通插件接口下,添加了点云抽稀的功能,而并不涉及ccStdPluginInterface,ccDefaultPluginInterface等接口的深入探究,也不涉及到CloudCompare框架的研究,但只有先熟悉了表现才能更进一步学习其机理吧,接下来会首先继续学习其表象,参照官方文档,本文提供下载链接https://download.csdn.net/download/CPWWHSU/12678986,进一步熟悉CloudComapre的功能,接着回归最初的三维建模的学习上,熟悉现有开源库(VCGLib、CGAL)的功能,了解原理。同时本文提供点云抽稀插件源码(自己复现在一种基于空间八叉树的随机抽稀算法)链接https://download.csdn.net/download/CPWWHSU/12678987,将其添加到CloudCompare的源码中,即可添加点云抽稀插件。本文有什么不足之处敬请谅解,希望能和大家一样,一起学习,一起进步。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHPCWWHSU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值