开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL
3D point cloud and mesh processing software,Open Source Project,Based on Qt5.
CloudCompare是一款基于GPL开源协议的3D点云处理软件,可以在Windows、MacOS和Linux上运行。我们可以通过阅读其源码来一窥3D点云处理的基本算法,也可以通过设计新的plugin来拓展本软件。
CloudCompare是一个三维点云(网格)编辑和处理软件。最初,它被设计用来对稠密的三维点云进行直接比较。它依赖于一种特定的八叉树结构,在进行点云对比这类任务时具有出色的性能。此外,由于大多数点云都是由地面激光扫描仪(例如LMI)采集的,CloudCompare的目的是在一台标准笔记本电脑上处理大规模的点云——通常超过1000万个点云。例如在一台带有双核处理器的笔记本电脑上,计算出300万个点到14000个三角形网格的距离需要10秒。
1、官网
CloudCompare - Open Source project
CloudCompare forum - Index page
- 主程序源码,基于Qt5
https://github.com/CloudCompare/CloudCompare
- CCLib库(包含核心算法)
https://github.com/CloudCompare/CCCoreLib
- 其他组件:
CloudCompare/libs at master · CloudCompare/CloudCompare · GitHub
qCC_db(数据库)
qCC_io(文件I/O库)
qCC_gl(基于OpenGL的3D显示库)
2、源码编译
准备好环境:VS2017+Qt5.12.9 x64
(1)把CCCoreLib源码包解压到CloudCompare旗下的路径:
\CloudCompare-master\libs\qCC_db\extern\CCCoreLib
(2)使用cmake生成VS2017 x64的工程。其中Plugin的选项:
默认情形下,只有PLUGIN_IO_QCORE打钩。除了PLUGIN_IO_QCORE是必需品之外,CloudCompare不需要任何plugin。
有兴趣的读者,可以勾选PLUGIN_EXAMPLE_???这几个插件学习研究一下下。
(3)一键编译到底,成功!最终会生成两个exe,分别是主程序CloudCompare和小工具ccViewer。
\CloudCompare-master\build64\qCC\Debug\CloudCompare.exe
\CloudCompare-master\build64\ccViewer\Debug\ccViewer.exe
如果勾选了插件文件,则需要手动把.dll文件拷贝到以下路径:
\CloudCompare-master\build64\qCC\Debug\data\plugins
(4)ccViewer是配套的小工具,可以查看3d视图。它支持很多种文件格式,最简单的是txt文本。
我们输入以下xyz坐标,即可查看3d效果。
3、参考文献
《CloudCompare:三维点云(网格)编辑和处理工具》
微信公众号:点云PCL ,作者:dianyunPCL
《基于Qt的OpenGL点云显示基本框架》
基于Qt的OpenGL点云显示基本框架_行且歌的博客-CSDN博客_opengl显示点云
我的另一篇博文:
开源项目推荐:OpenGL之Qt专辑;重点是ccViewer和libQGLViewer_libaineu2004的博客-CSDN博客_opengl开源项目
x、题外话
(1)点云库
PCL(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。
Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.
(2)一个精简的开源点云库
Cilantro是一个精简高效的点云数据处理库,编程是C++,依赖项较少,但是相比较于PCL来说,代码更有可读性,PCL中大量的使用C++高级特性,阅读起来比较难并且不易重构拆解代码,而cilantro重点放在了3D案例上,尽量减少了样板代码的数量,包含了对点云常见的操作,是一个比较简单易懂的API,所以该库可以被广泛的模块化,并且支持多维度数据进行操作,同时保证对算法模块的模块化和可扩展性。作者是一位在Magic leap公司工作的计算机视觉工程师,是马里兰大学伯克利分校的计算机科学博士,是感知机器人小组的成员。
https://github.com/kzampog/cilantro
(3)免费的几何库
GeometryHub
BGL (Basic Geometry Library) 包含了三维数据处理最基础的数据结构。用户可以很方便的使用它来开发各种几何相关的算法。
它是免费的,可以无限制的使用,包括科研,商业产品等。
Basic Geometry Library
Geometry++
Geometry++是一个支持多平台的三维数据处理几何库,可以作为三维数据处理软件的几何引擎来使用
Geometry++
Magic3D
Magic3D提供了三维点云和网格数据处理的基本功能。所有功能的几何算法采用了BGL和Geometry++几何库
Magic3D
(4)三维深度学习之pointnet
PointNet
PointNet++
GitHub - charlesq34/pointnet: PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
https://github.com/charlesq34/pointnet2
---
姊妹篇
开源项目推荐:3D点云处理开源库PCL和Open3d_libaineu2004的博客-CSDN博客_open3d pcl
开源项目推荐:3D点云处理软件CloudCompare,基于Qt和OpenGL相关推荐
- 开源项目推荐:3D点云处理开源库PCL/Cilantro/Open3d/Easy3D/PDAL/LAStools
PCL Point Cloud Library是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取.滤波.分割.配准.检索 ...
- 开源项目推荐:OpenGL/Vulkan/Cairo/Skia/angle/VTK/OpenVG/MyPaint/GIMP/Krita/Pencil2D/inkspace/enve等绘图库或画图软件
绘图引擎简介 Windows环境下二维绘图引擎有多种选择:GDI.GDI+.DirectDraw.Qt/QPainter.Agg.Cairo.skia.Direct2D.Direct3D.OpenGL ...
- 阿里淘系优质开源项目推荐(下)
开源推动着互联网技术的发展.多年来,阿里巴巴淘系技术一直积极拥抱开源事业,无论是开源软件的应用.回馈以至自研技术的开源都非常活跃,近两年我们更是开源了MNN.飞冰ICE.3D-FUTURE & ...
- 开源项目推荐:本人收集的有关Qt的GitHub/Gitee开源项目(★精品收藏★)
尊重作者,支持原创,如需转载,请附上原地址:开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)_$firecat全宏的代码足迹$-CSDN博客_qt开源项目https://lib ...
- 27款实用高效的腾讯热门开源项目推荐
WeUI 是由微信官方设计团队专为微信移动 Web 应用设计的 UI 库,是一套同微信原生视觉体验一致的基础样式库,为微信 Web 开发量身设计,可以令用户的使用感知更加统一. DEMO:https: ...
- 开源项目推荐:OpenGL之gult/freeglut/glew/glfw/glad的联系与区别
本篇内容主要参考了文章:OpenGL+VS2017 环境配置(亲测好使)::附带必要知识点_FuXiii的博客-CSDN博客_vs2017环境配置,但是经过本人局部修改,并添加了个人见解. 1.Ope ...
- 开源项目推荐:我个人中意的Python/C++/.Net数学库(★精品收藏★)
Numpy和SciPy 大名鼎鼎的 NumPy python版本 https://github.com/numpy/numpy https://github.com/dpilger26/NumCpp ...
- 开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM(一)
尊重作者,支持原创,如需转载,请附上原地址: 开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM_$firecat全宏的代码足迹$-CSDN博客_开源cnc软件 先来 ...
- springboot 数据权限_13 个最火的 SpringBoot 实战开源项目推荐!总有一个适合你!...
商城系统 Guide 哥注:下面的商城系统大多比较复杂比如 mall ,如果没有 Java 基础和 Spring Boot 都还没有摸熟的话不推荐过度研究下面几个项目或者使用这些项目当作毕业设计. m ...
- 10大Go语言开源项目推荐
关注公众号 风色年代(itfantasycc) 300G微服务资料等你拿! Go语言诞生5周年!10大Go语言开源项目推荐 - Go语言中文网 - Golang中文社区 引用 2014年11月,Gol ...
最新文章
- 又偷懒了4个月,督促自己
- Collection+JSON 文档
- numpy vsplit
- CentOS7 install google-chrome-stable
- 大学期末考试综合实训试题一
- [机器学习] LightGBM on Spark (MMLSpark) 使用完全手册
- IOS 深拷贝和浅拷贝应用
- html中怎么修改黑体,css怎样设置黑体?
- ExtJS Panel主要配置列表
- 快速乘 防爆乘 快速幂
- 01函数极限的概念及性质
- Unity NGUI 之 UIScrollView 基本用法
- 1寸、小2寸、2寸证件照片是多大尺寸?
- 27 | 风控系统:如何从海量业务数据中,挖掘黑灰产?
- 2015年第六届C/C++ B组蓝桥杯省赛真题
- 计算机网络技术期末复习考点
- 乳腺结节属于癌前病变吗?
- 数据库表的字段常用数据类型
- 支付宝小程序服务器要求,支付宝小程序:支付宝服务端SDK
- 一起学ORBSLAM2(12)结语