想问点三维重建的基础知识

2023-05-16 09:51:58 +08:00
 azev

现在要把一些点云数据转换为 STL 格式,进行打印,需要做些什么工作呢?
我初步的了解是先转为体素数据?然后使用 Marching Cubes 算法进行三角网格化,最后把结果保存为 STL 格式?
这样可行吗? python 可以借助什么三方库呢? open3d ? pyvista ?
问了下 chatgpt 倒是给出了一些东西,但总是都是翻来覆去的犯重复的错误,基本就是这个类没有这个属性或方法。

899 次点击
所在节点    问与答
10 条回复
zjhzxhz
2023-05-16 09:53:49 +08:00
STL 是存储 Mesh 用的。点云有自己的格式( e.g., ply ),甚至直接存储成 numpy 的 npy 格式也可以。
转换成体素 + Marching Cube 会损失精度的。
azev
2023-05-16 10:17:21 +08:00
@zjhzxhz 多谢
1.目前的点云格式是 xyz ,是说转成 npy 后可以保存为 stl 吗?
2.这个 Marching Cube 是不是就是转为 mesh ?
zjhzxhz
2023-05-16 10:22:12 +08:00
@azev
1. 为啥一定要保存成 stl ?“进行打印”的意思是 3D 打印?
2. 对。Marching Cube 的 Input 是 Voxel ,Output 是 Mesh 。
azev
2023-05-16 10:40:35 +08:00
@zjhzxhz
1.对的,是要进行 3D 打印
zjhzxhz
2023-05-16 10:50:42 +08:00
@azev
那确实需要转换成 Mesh 。Open3D 确实可行。
可参见: http://www.open3d.org/docs/latest/tutorial/Advanced/surface_reconstruction.html
azev
2023-05-16 11:05:14 +08:00
我在搜的时候看到这个 https://github.com/isl-org/Open3D/issues/2365
意思是 open3d 不支持 xyz 点云转为体素?但我看 open3d 中有涉及体素的一些类和方法呢
开始 chatgpt 给了一些代码做这些工作,但反复犯错,追问之后又说 open3d 中没有直接将 VoxelGrid 转换为三角网格的方法。
azev
2023-05-16 11:05:39 +08:00
@zjhzxhz 多谢
siknet
2023-05-16 11:13:00 +08:00
三维重建?具体点啊,是航拍后三维地图重建,还是单个物体

前者已经做烂了,放弃吧,全国林地田地确权已经做完了。后者的话楼下的大佬帮忙解答
azev
2023-05-16 11:35:58 +08:00
@siknet 多谢 是地下勘探 open3d 或者说是 3d 三维这块有没有好的书籍推荐?
siknet
2023-05-16 12:31:28 +08:00
@azev 这个跨行业了,帮不上忙。可以先去了解主流软件,然后国内找找有没有专门讨论这个的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/940299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX