如何实现 3d 重建算法

How to implement 3d reconstruction algorithms

我最近一直在研究从多个 2d 视图进行 3d 重建。我阅读的大部分内容都集中在基础矩阵、对极几何和该主题的其他理论原理上。假设给定两个图像,我知道如何计算每个 2d 点对应的 3d 点。

我的问题是:

  1. 我应该使用哪些软件或库来显示 3d 模型?
  2. 如何表示 3d 模型?

我知道可以使用 MATLAB 或 OpenCV,但我没有找到任何讨论如何做的内容。

检查 OpenCV 中的 disparity map。您可以使用它来生成深度图(类似于您从 - 比方说 - Kinect 获得的深度图,但显然不太准确)。视差图中的每个像素代表到对象的距离,基于用于生成地图的两个帧之间的差异。

有一个 example in the OpenCV samples 可以让您了解它是如何完成的。

至于 3D 数据的表示,我建议 PCL(点云库)或任何其他使用点云的库,因为......好吧,这是当今的一种做法。点云允许您对 space 数据应用各种算法(包括特征匹配、合并、转换等)以及生成网格的能力。 PCL 例如 - 如果我没记错的话 - 至少有 3 种从点云生成网格的方法(遗憾的是,NURBS 模块仍处于实验阶段且存在错误)。