一篇前后零散写了20几天的博文 ,希望大家品评。主要是总结最近使用CGAL的一些心得,集中在点云和面网格(surface mesh)的处理。我同时提供了 sample代码 和数据( Google drive 百度云 , 密码uo59)。包含的内容有

  • PLY格式点云读写,处理PLY文件中的property。
  • PLY格式面网格读写。
  • 面网格property map和面法向量。
  • 网格检查和修复。
  • Advancing front surface reconstruction.
  • Isotropic remeshing.
  • 面网格孔洞检测和补全。
  • 线追踪(Ray tracing/shooting).
  • 点云上的基础几何检测(平面检测)。

原文为英文。

import numpy import pygalmesh points = numpy . array ([[ 0.0 , 0.0 ], [ 1.0 , 0.0 ], [ 1.0 , 1.0 ], [ 0.0 , 1.0 ]]) constraints = [[ 0 , 1 ], [ 1 , 2 ], [ 2 , 3 ], [ 3 , 0 ]] mesh = pygalmesh . generate_2d ( points , constraints , max_edge_size = 1.0e-1 , num_lloyd_steps = 计算 点云 面积时,cloud compare采取的策略是将 点云 网格 化,然后计算 网格 面积。这样构网的情况往往会影响到后续面积的计算精度。这里采取了一种凹包面积计算的策略。主要步骤包括: 1、将 点云 旋转至与z轴相垂直的平面 2、计算旋转后 点云 的凹多边形边界点 3、利用 cgal 库计算凹多边形面积 这里采用了 cgal 中Polygon::area()算法,仅接受二维点输入。 #pragma warning(disable : 4996) #include < CGAL /Exact_predicates_inex. 常见 点云 文件解析学习笔记开飞机的乔巴关注0.3412019.08.14 19:01:20字数 2,560阅读 1,442 本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权,请告知删除。 传统2D计算机视觉学习笔记目录------->传送门 传统3D计算机视觉学习笔记目录------->传送门 为什么会有这么多的 点云 ... 点云 处理 ,算法程序代编,top5硕博团队,高质量的服务。基于pcl, cgal 程序代编。联系方式:🐧🐧(q)958417691 或闲鱼id专业 点云 处理 。 1. 点云 分割。单木分割,林下地形提取,DEM制作,等高线制作,地形补洞。 2. 点云 重建。多种方法 点云 重建模型。 3. 点云 配准。大坝,隧道,孔洞等变形监测,重叠度评估。 4. 点云 体素化, 点云 网格 化,以及体素结果三维可视化。 5. 点云 特征提取。二维,三维边界提取,关键点提取。 点云 拟合圆柱,球体,平面等。 6. 点云 抽稀。 7.基于gdal的gis, 想用 CGAL 做一些关于mesh的操作,我的上游输出是一个用PLY文件存储的surface mesh,我希望将其转换为 CGAL 的格式。经过Google发现,较新的 CGAL 版本带有read_ply()函数,而当前系统配套的 CGAL 版本并不支持,于是需要安装新的 CGAL 。How hard can it be?! 但是事实是,这花去了几乎一下午的时间。 Ubuntu 18.04 cmake 3.16 Qt 5.9.5 clone repo 从 CGAL 的Github clone 到本地。 当前 CGAL 需求说明:有立方体的八个顶点坐标,需要判断两个或多个立方体是否有交集。 根据百度搜索结果, CGAL 可以提供立方体的布尔运算 功能 ,但是需要根据已知的坐标构建该库的多面体对象。 以下内容参考博客 CGAL 多面体布尔运算 - 码农岛 CGAL 中的Polyhedron并不能直接进行多面体的布尔运算,真正实现布尔运算的结构是 CGAL ::Nef_polyhedron_3<Kernel>(包含 用于 二元布尔运算所需要的结构信息),按照 CGAL 的官方教程,用Polyhedron来构造Nef_Polyhedr. CGAL 是一款几何 处理 库,但是介绍其在 点云 处理 的资料比较少,现介绍一个专门介绍 CGAL 点云 数据中 处理 的网站,比包括常见的 点云 数据 处理 功能 包括: (1)聚类 (欧式聚类) (2)配准 (ICP) (3)简化(格网) (4)平滑 (5)法向量估算 (6)特征估算 每个函数均有详细的案例介绍,应该可以可视化。感兴趣的小伙伴可以去看看,学习 最后附上官网: CGAL 5.4 - Point Set Processing: User Manual