【点云处理常见的开源库】

目录

(1)Eigen: 一个标准的C++模板库用于线性代数,矩阵,向量等计算。

(2)FLANN:快速最近邻逼近搜索函数库,可实现快速高效匹配。

(3)libLAS: 用于读取和写入非常常见的LAS LiDAR格式。

(4)PDAL: 一个C / C ++开源库和用于转换和处理点云数据的应用程序。

(5)PCL: 点云处理模块化的C++模板库。

(6)3DTK: 提供了处理3D点云的算法。

(7)Open3D: 支持快速开发处理3D点云网格的软件,亦提供C++接口。

(8)MeshLab: 主要用于交互处理和非结构化编辑三维三角形网格。

(9)Boost: 用于共享指针和多线程。

(10)Entwine: 用于大规模点云的数据组织库。


(1)Eigen: 一个标准的C++模板库用于线性代数,矩阵,向量等计算。

下载链接:

http://eigen.tuxfamily.org/index.php?title=Main_Pagetle=Main_Pageh

     点云网格的基本组成元素为点,多个点就构成了三维向量,所以Eigen在点云网格计算运用非常广泛。除了C++标准库以外,不需要任何其他的依赖包。Eigen使用的CMake建立配置文件和单元测试,并自动安装。如果使用Eigen库,只需包特定模块的的头文件即可。

(2)FLANN:快速最近邻逼近搜索函数库,可实现快速高效匹配。

下载链接:https://github.com/flann-lib/flann

    FLANN对点云索引(KdTree、Octree)中的K近邻、半径近邻、混合近邻搜索方法提供支持作用。它是目前最完整的最近邻开源库。不但实现了一系列查找算法,还包含了一种自动选取最快算法的机制,在一个度量空间X给定一组点P=p1,p2,…,pn,这些点必须通过以下方式进行预处理,给第一个新的查询点q属于X,快速在P中找到距离q最近的点,即最近邻搜索问题。

(3)libLAS: 用于读取和写入非常常见的LAS LiDAR格式。

下载链接:https://liblas.org

      主要作用有两个:一个用于将对ASPRS LAS格式的读写支持嵌入到您自己的C / C ++应用程序中的库,另一个基于LASTools的命令行实用程序套件,用于检查,操作,转换和处理LAS LiDAR数据。

(4)PDAL: 一个C / C ++开源库和用于转换和处理点云数据的应用程序。

下载链接:PDAL - Point Data Abstraction Library — pdal.io

      PDAL非常适合点云数据转换工作流程。它通过为内容提供抽象的API,使用户可以将算法应用于数据,从而使用户不必担心许多数据格式问题。PDAL的无格式烦恼确实带来了一些间接费用。在大多数情况下,这并不重要,但是对于具有特定数据的特定处理工作流,专用工具肯定会胜过它。

(5)PCL: 点云处理模块化的C++模板库

下载链接:https://pointclouds.org

    对于3D点云处理来说,PCL完全是一个的模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。

(6)3DTK: 提供了处理3D点云的算法。

下载链接:https://slam6d.sourceforge.io

      它包括自动高精度配准(6D同时定位和地图绘制,6D SLAM)和其他工具,例如快速3D查看器,平面提取软件等。本地支持点云的几种文件格式,可以实现新格式容易。

(7)Open3D: 支持快速开发处理3D点云网格的软件,亦提供C++接口。

下载链接:http://www.open3d.org

       核心功能包括:3D数据结构、3D数据处理算法、场景重建、表面对齐、3D可视化、基于物理的渲染(PBR)、在C ++和Python中可用。

(8)MeshLab主要用于交互处理和非结构化编辑三维三角形网格。

下载链接:https://www.meshlab.net

    MeshLab, 是一个开源,方便携带,和可扩展的系统,用于处理和非结构化编辑 3D 三角形网格。旨在帮助在 3D 扫描、 编辑、 清洗、 愈合、 检查、 呈现和转换这种网格提供一套工具所产生的典型不让小非结构化模型的处理。

(9)Boost: 用于共享指针和多线程。

下载链接:https://www.boost.org

    在处理点云网格时,数据量往往十分庞大,导致计算速度缓慢,而利用Boost的智能指针和多线程,大幅度降低计算时间。Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。

(10)Entwine: 用于大规模点云的数据组织库。

下载链接:https://entwine.io

     Entwine,旨在处理数万亿点的数据集以及桌面规模的点云。Entwine可以索引PDAL可读的任何内容,并且可以读/写各种源,例如S3或Dropbox。构建完全无损,因此即使对于TB级的数据集,也不会丢弃任何点,元数据或精度。

根据提供的引用内容,C#点云处理开源工具并不是很多,但是有一些可供选择的工具,如下所示: 1. CloudCompare:CloudCompare是一个开源的3D点云和网格处理软件,它提供了许多功能,如点云配准、滤波、分割、重构、可视化等。它支持多种文件格式,包括PLY、OBJ、STL、ASC、LAS等。CloudCompare是用C++编写的,但它也提供了C# API,可以在C#中使用。 2. Point Cloud Library Wrapper for .NET:这是一个为.NET平台提供的PCL包装器,它允许在C#中使用PCL。它提供了许多PCL的功能,如点云滤波、配准、分割、特征提取等。它还提供了一些额外的功能,如点云可视化、文件读写等。 3. Open3D:Open3D是一个用于3D数据处理的现代C++,它提供了许多功能,如点云配准、滤波、分割、重构、可视化等。它还提供了Python API,但是也可以在C#中使用。 下面是一个使用Open3D在C#中进行点云可视化的例子: ```csharp using System; using Open3D.Core; using Open3D.Geometry; using Open3D.Visualization; class Program { static void Main(string[] args) { // 创建点云 var points = new Vector3dVector(new double[,] { {0.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0} }); var colors = new Vector3dVector(new double[,] { {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}, {1.0, 1.0, 0.0} }); var pcd = new PointCloud(points, colors); // 创建可视化窗口 var vis = new Visualizer(); vis.CreateVisualizerWindow("Open3D", 800, 600); // 添加点云到窗口 vis.AddGeometry(pcd); // 显示窗口 vis.Run(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xhgen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值