首页 > 解决方案 > 从多个图像进行 3D 重建

问题描述

如果有人已经回答了这个问题,我很抱歉,但我正在查看 Internet 上的每个页面,但没有为我的问题找到完美的答案。我需要从多个 2D 图像重建 3D 模型。事实是我已经有了图像,但我没有关于相机的信息。我只知道它已经使用了一个围绕物体旋转的相机。为了重建对象的 3D 形状,我需要建立相机矩阵,但我不知道该怎么做。我正在使用 ORB 特征检测来处理像立体视图这样的两个图像来建立对应关系并找到基本矩阵和单应性,但我无法继续查找相机参数。我正在使用 python 和 OpenCV。提前致谢。

标签: pythoncameracomputer-vision3d-reconstruction

解决方案


你问这个问题已经有一段时间了,但你可以从它的 Exif 标签中提取图像的焦距,它只有在你拥有的图像是 JPEG 格式时才有效。光学中心可以近似为宽度/2 和高度/2,这是一个大致相同的好材料:http: //phototour.cs.washington.edu/focal.html

可以使用大量可用的包/库来读取 Exif,Python 中的一个这样的例子是:https ://pypi.org/project/ExifRead/

注意:焦距的 Exif 数据以 mm 为单位,您可能需要预先使用传感器宽度值将其转换为像素(也在 Exif 标签中编码)。

F(像素)= F(毫米)×图像宽度(像素)/传感器宽度(毫米)

一旦你确定了焦距、Cx、Cy,你可以将它们放入相机矩阵 K 中,并根据你手头的图像通过 SFM/MVS 或立体重建继续进行。


推荐阅读