【问题标题】:What is translation vector and how do I work with it什么是翻译向量以及如何使用它
【发布时间】:2019-10-28 12:09:19
【问题描述】:

我正在尝试计算两个图像之间的平移。我实际上在做的是:

CameraMatrix = LoadCameraMatrix()
FundamentalMatrix = CalculateFundamentalMatrix(points1, points2)
EssentialMatrix = CalculateEssentialMatrix(FundamentalMatrix, CameraMatrix)
translation, rotation = GetTranslationRotationFromEssential(EssentialMatrix)

print(translation)
[[-0.29258711]
 [-0.49736601]
 [ 0.81671282]]

由此,我得到了旋转矩阵和平移向量,但我很难理解平移向量的含义。我知道我无法得到真正的单位,比如以米为单位的翻译,所以它必须是某种比率。

所以我的问题是这些数字是什么意思,考虑到我知道图像上对象的大小,我如何才能将矢量转换为真实世界的单位。

【问题讨论】:

    标签: python computer-vision


    【解决方案1】:

    平移向量表示两个摄像头之间或连续摄像头位姿之间的距离(如果图像来自同一摄像头)。由于无法从点对应关系中确定尺度,因此平移向量仅表示两个相机位姿之间的向量方向,该向量已归一化(其长度等于 1)。

    如果您知道对象的大小,则可以计算属于该对象的某些点之间的距离,并将其与它们之间的距离(以像素为单位)进行比较以缩放平移向量。请参阅此 question 或此 question 来解决相同的问题。

    【讨论】:

    • 感谢您的回答。矢量以像素为单位?这对我来说听起来很奇怪,我的输出也很小,我把相机安静了一点,还有浮动像素?你知道我可以阅读更多关于这个主题的任何文档吗?
    • 查看我的更新答案。我希望它能回答你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2015-03-13
    • 2013-10-25
    • 2014-11-19
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多