现在要把一些点云数据转换为 STL 格式,进行打印,需要做些什么工作呢?
我初步的了解是先转为体素数据?然后使用 Marching Cubes 算法进行三角网格化,最后把结果保存为 STL 格式?
这样可行吗? python 可以借助什么三方库呢? open3d ? pyvista ?
问了下 chatgpt 倒是给出了一些东西,但总是都是翻来覆去的犯重复的错误,基本就是这个类没有这个属性或方法。
1
zjhzxhz 2023-05-16 09:53:49 +08:00
STL 是存储 Mesh 用的。点云有自己的格式( e.g., ply ),甚至直接存储成 numpy 的 npy 格式也可以。
转换成体素 + Marching Cube 会损失精度的。 |
2
azev OP |
3
zjhzxhz 2023-05-16 10:22:12 +08:00
|
5
zjhzxhz 2023-05-16 10:50:42 +08:00
@azev
那确实需要转换成 Mesh 。Open3D 确实可行。 可参见: http://www.open3d.org/docs/latest/tutorial/Advanced/surface_reconstruction.html |
6
azev OP 我在搜的时候看到这个 https://github.com/isl-org/Open3D/issues/2365
意思是 open3d 不支持 xyz 点云转为体素?但我看 open3d 中有涉及体素的一些类和方法呢 开始 chatgpt 给了一些代码做这些工作,但反复犯错,追问之后又说 open3d 中没有直接将 VoxelGrid 转换为三角网格的方法。 |
8
siknet 2023-05-16 11:13:00 +08:00
三维重建?具体点啊,是航拍后三维地图重建,还是单个物体
前者已经做烂了,放弃吧,全国林地田地确权已经做完了。后者的话楼下的大佬帮忙解答 |