用于 3D 点三角测量的投影矩阵

问题描述

我对投影矩阵的含义感到困惑。如果我有一个单目相机,并且我想从两个连续帧 I_k 和 I_{k-1} 的图像(2D)点对 3D 点进行三角测量,并且我使用 cv.triangulatePoints,它需要 2 个投影矩阵和 2 个 2d 点数组.

所以让我困惑的是:据我所知,投影矩阵将3D点转换为2D点,其格式为:K*[R | t],其中 K 是内在参数。假设我们有第 k-1 帧、第 k 帧和第 k+1 帧。让我们来看看 triangulatePoints 方法及其声明:

triangulated4d = cv.triangulatePoints(P1,P2,kp1,kp2);

kp1 - 来自第 k 帧的关键点

kp2 - 来自第 k+1 帧的关键点

P1,P2 = ?

P1 和 P2 是什么?我的意思是,我们是否每次在 2 帧之间计算 P1 和 P2?像内参始终保持不变,外参因两帧之间的旋转和平移而变化。

所以我的问题是:P1 和 P2:

  1. 始终固定:仅计算一次,使用来自相机校准的 K、R 和 t
  2. 不固定:总是用新的 R 和 t 计算(R 和 t 是帧 k 和 k+1 之间的转换)并且 K 是固定的

如果答案是 2,那么 P1 和 P2 分别是什么? (k-1)和k帧之间的P1,(k)和(k+1)帧之间的P2?

我只是计算机视觉的初学者,这让我很困惑。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)