从 3D 物体到 2D 图像平面的透视变换为:
s[u v 1]^t = A[R T][X Y Z 1]^t
其中 A 是已知的相机参数。
在 Matlab 中,我们可以使用“外在”函数来计算 R 和 T 给定四个对应的图像点和世界点:[u v]
和[X Y]
。
但是,有 13 个变量(包括s
),我们这里只有 12 个方程。(顺便说一句,我设置Z = 0
了,这是对的吗?或者Z
可以是任何值?)。我如何计算s
和?它的数学过程是什么?R
T
从 3D 物体到 2D 图像平面的透视变换为:
s[u v 1]^t = A[R T][X Y Z 1]^t
其中 A 是已知的相机参数。
在 Matlab 中,我们可以使用“外在”函数来计算 R 和 T 给定四个对应的图像点和世界点:[u v]
和[X Y]
。
但是,有 13 个变量(包括s
),我们这里只有 12 个方程。(顺便说一句,我设置Z = 0
了,这是对的吗?或者Z
可以是任何值?)。我如何计算s
和?它的数学过程是什么?R
T
这个问题被称为Perspective-n-Point。
您可以在文献中找到一些参考资料(例如,1995 年25 行代码中基于模型的对象姿势,存在更新的方法)。这里有一些关于这个主题的课程: