2

我有两张由同一物体的深度相机拍摄的图像。我可以在对象上标记一些(比如 5 个)相同的点,并获取它们相对于相机位置的坐标。是否可以根据这些坐标在第二张图像中找到相机位置,假设第一张图像为 0,0,0?

例子:

图 1
摄像机位置:0,0,0
摄像机角度(俯仰、滚动、航向):0,0,0

点 1: 21.3、33.2、44.1 点 2:
28.3、39.2、41.5
点 3:23.4、31.1、53.4

图 2
摄像头位置: ?
相机角度: ?

点1:23.4、31.2、44.7
...

我假设基于点之间以及点与相机之间的距离可以计算。可以用一个简单的脚本来完成吗,例如在 python 中,并且没有 3d 库?

非常感谢。

4

1 回答 1

0

如果您对相机一无所知,我认为两张图像是不可能的。除了绝对缩放模糊性(例如:如果将场景中的所有内容缩小 10 倍,您的相机图像将是相同的......),显然存在深度缩放模糊性,没有匹配对的数量可以使固定。您可以通过在 3d 点集之间提供一定数量的绝对距离值,或通过提供必要的附加长度比例的其他方法来解决这种歧义。我找到了一篇关于该主题的论文,但尚不清楚它解决的问题是否正是您正在寻找的问题。

如果您首先通过测量其几何成像特征来校准相机,您可以更轻松地计算两张照片的相对相机位置(尽管缺少额外的信息,您仍然会遇到绝对缩放问题!)。如果我没记错的话,您至少需要 3 分,但 4 分的数学要简单得多。关于该主题的一本书(在线示例章节)是计算机视觉中的多视图几何;另一个是多幅图像的几何

在OpenCV中有一个做这种事情的库。但是,它并没有一个功能可以完全满足您的需求——弄清楚如何使用它确实需要对它背后的数学有一定的了解,因此您需要阅读有关该主题的书。

于 2012-09-26T17:40:42.897 回答