algorithm - 3D表面重建算法

标签 algorithm math 3d interpolation

我有一个 3D 表面(例如圆锥体)。它以等高线的形式投影到二维平面图上,即不同的Z在二维平面图上会有不同的线。问题出在轮廓上,如何通过插值恢复3D表面?我们只知道不同轮廓线之间的 z 差异。

最佳答案

您提到的“等高线”的技术术语是“等值线”。
给定一组等值线,您首先需要构建 3D 点云(只是 3D 空间中的点集合)。你分两个阶段来做。首先以均匀的间隔对每条等值线进行采样,得到二维点,然后将这些点升高适当的高度。
通过在任何地方跟踪它,可以很容易地以统一的间隔对一条线进行采样。您可以通过从最外层的线开始,一条一条地向内追踪,移除您追踪的每条线,并记录您追踪的线数,来了解一条线的高度。
当然你需要事先知道线条之间的高差是多少,最外面的线条(或任何其他可以作为引用的线条)的高度是多少

获得 3D 点云后,您可以使用多种表面重建算法中的任何一种。 This company例如制作一个应用程序来执行此操作,您可以从他们的站点下载一个命令行演示,该演示最多可获得 30,000 点。

关于algorithm - 3D表面重建算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343108/

相关文章:

algorithm - Procrustes 分析/找到由两组 2d 点表示的两个图像之间的角度

javascript - 你如何用 React 更新 div?

3d - 制作 3D 模型和设计关卡的最佳方式是什么?

python - 如何加速代码来解决位删除难题

algorithm - 在没有数组的情况下迭代打乱 [0..n)

.net - 用于非游戏相关 3D 图形编程的托管 Direct3D 或 XNA?

用于创建 3d 打印 3d 对象的 Java 库

c++ - zip文件使用的加密算法是什么?

algorithm - opencv 用于查找轮廓的算法是什么?

algorithm - 在 HMM 中找到前 k 个 viterbi 路径