3

我有以下主要是算法的问题。

  • 设 ABCD 为已知尺寸 d1、d2 位于空间某处的矩形。
  • 矩形 ABCD 投影在平面 P 上(在一般情况下形成梯形 KLMN)。我知道投影矩阵 H。
  • 我还可以找到梯形边缘点 K、L、M、N 的 2D 坐标。

问题如下:

  • 给定投影矩阵 H、梯形边缘的坐标以及我们的对象是具有指定几何形状(尺寸 d1、d2)的矩形的知识,我们可以计算点 A、B、C、D 的 3D 坐标吗?

我正在用一个相机抓取简单矩形的图像,我想在空间上重建矩形。我可以抓取多个图像并使用三角测量,但这不是我们所希望的。

仅投影矩阵是不够的,因为光线被投影到同一点。对象具有已知尺寸的事实使我相信问题是可以解决的并且存在有限的解决方案。

如果我弄清楚如何进行这种重建,我就会知道如何对其进行编程。所以我要求一个算法/数学答案。

欢迎任何想法谢谢

4

5 回答 5

1

我将在这里给出一个相当简短的答案,但我想你会明白我的大致意思。我假设你有一个 3x4 投影矩阵 (P),所以你应该能够通过找到 P 的正确空向量来获得相机中心:称之为 C。

一旦你有了 C,你就可以计算出与向量 CK、CL、CM 和 CN 方向相同的光线(即 C 和 K、L、M 或 N 的叉积,例如 CxK)

现在您所要做的就是计算满足以下 6 个约束的 3 个点 (u1,u2,u3)(任意假设 KL 和 KN 相邻且 ||KL|| >= ||KN|| if d1 >= d2) :

  1. u1 位于 CK 上,即 u1.CK = 0
  2. u2 位于 CL 上
  3. u3 位于 CN
  4. ||u1-u2|| = d1
  5. ||u1-u3|| = d2
  6. (u1xu2).(u1xu3) = 0(正交性)

其中,AB = 向量 A 和 B 的点积 ||A|| = A 的欧几里得范数 AxB = A 和 B 的叉积

于 2009-03-20T07:10:00.553 回答
1

您需要计算投影矩阵的逆矩阵。(你的矩阵不能是单数)

于 2009-03-10T16:26:00.880 回答
1

我认为这个问题会产生一组可能的解决方案,至少在 2D 中是这样。对于 2D 案例:

           |   
-----------+-----------
          /|\
         / | \
        /  |  \
       /---+---\VP
      /    |    \
     /     |     \
    /      |      \
   /       |       \
  /        |   --   \
 /         |    |    \
/          |    |     \

在上图中,垂直线段和水平线段将投影到视图平面 (VP) 上的同一条线上。如果你把它按比例画出来,你会看到有两条来自眼睛的光线穿过未投影线的每个端点。这条线可以在许多位置和旋转 - 想象一下将一根棍子放入圆锥体中,它可能会卡在任意数量的位置。

因此,在二维空间中,定义明确的集合中有无限数量的解。

这适用于 3D 吗?

该算法将遵循以下路线:

  1. 反转投影矩阵
  2. 计算通过矩形顶点的四条射线,有效地创建一个倾斜的金字塔
  3. 尝试将您的矩形放入金字塔中。这是一个棘手的问题,我试图在脑海中想象金字塔中的矩形,看看它们是否能以多种方式适应。

编辑:如果你知道到物体的距离,它就会变得微不足道。

编辑 V2:

OK,令Rn为世界空间中的四条射线,即通过逆矩阵变换,用m.Rn表示,其中|Rn| 是一个。因此,矩形的四个点是:

P1 = aR1
P2 = bR2
P3 = cR3
P4 = dR4

其中 P1..P4 是矩形圆周周围的点。由此,使用一点向量数学,我们可以推导出四个方程:

|aR1 - bR2| = d1
|cR3 - dR4| = d1
|aR1 - cR3| = d2
|bR2 - dR4| = d2

其中 d1 和 d2 是矩形边的长度,a、b、c 和 d 是未知数。

现在,可能无法解决上述问题,在这种情况下,您需要将 d1 与 d2 交换。您可以将每一行展开为:

(a.R1x - b.R2x) 2 + (a.R1y - b.R2y) 2 + (a.R1z - b.R2z) 2 = d1 2

R1在哪里?和R2?是光线 1 和 2 的 x/y/z 分量。请注意,您在上面求解的是 a 和 b,而不是 x,y,z。

于 2009-03-10T16:35:08.283 回答
0

投影矩阵同时封装了透视和比例,因此逆矩阵将为您提供所需的解决方案。我认为您假设它仅包含透视图,并且您需要其他东西来选择正确的比例。

于 2009-03-10T16:53:02.263 回答
0

m_oLogin 是对的。如果我理解您的目标,相机拍摄的图像是平面 P,对吗?如果是这样,您正在测量 2D 图像的 K、L、M、N。您需要投影矩阵的逆来重建 A、B、C 和 D。

现在我以前从来没有这样做过,但对我来说,你可能会遇到 GPS 仅使用 3 颗卫星修复时会遇到的同样问题 - 有两种可能的解决方案,一种在 P 的“后面”,一个在它的“前面”,正确的?

于 2009-03-10T16:34:18.533 回答