使用 OpenCV 从一组 2D 图像切片重建 3D 模型?

nav*_*ble 3 c++ opencv image-processing 3d-reconstruction

我有几个关于使用 OpenCV 使用一组 2D 图像切片进行 3D 重建的问题:

  • 从一组 2D 图像切片重新创建 3D 模型的步骤或过程是什么?

  • 如何开始使用 OpenCV 进行 3D 重建?我听说 OpenCV Viz 有效,但我对此很陌生,所以我不确定。

请注意,不需要相机,因为我得到了一组图像,并且仅限于 OpenCV。

预先感谢!

Dav*_*bin 5

Zisserman是这方面最权威的书籍之一。

(非常)高级的步骤是:

  1. 对于每个图像,识别一组特征(例如 SIFT、ORB、SURF 或类似特征)
  2. 对于一对图像,找到位于 1 中的特征之间的对应关系
  3. 使用这些对应关系,计算描述两个图像之间关系的基本矩阵 F
  4. 根据 F (以及理想情况下的一些内部相机参数),计算第二个图像中相对于第一个图像的相对相机位姿
  5. 使用 F 校正图像对,使对应点位于相同的扫描线上
  6. 使用两个图像计算密集视差图,然后将其转换为图像中每个像素的深度图
  7. 给定相机姿势和每个像素的深度,反投影点空间中的 3D 点
  8. 使用束调整等技术来优化整个计算点和图像集的 3D 坐标和相机姿势的导出值

OpenCVcalib3d库包含许多对此过程有用的函数,Google 是您的朋友,可以了解有关如何应用它们的更多详细信息。

另请参阅:具有立体 3D 重建功能的 OpenCV使用附带图像和示例的 OpenCV 3D 重建