一篇前后零散写了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