【问题标题】:How to transform a projected 3D rectangle into a 2D axis aligned rectangle如何将投影的 3D 矩形转换为 2D 轴对齐的矩形
【发布时间】:2011-05-18 00:57:16
【问题描述】:

我有一个 3D 矩形的图像(由于投影失真,它不是图像中的矩形)。我知道这个矩形所有角的所有世界和图像坐标。

我需要确定此矩形内图像中某个点的世界坐标。为此,我需要计算一个转换以将该矩形取消投影到 2D 矩形。

如何计算该变换?

提前致谢

【问题讨论】:

    标签: algorithm graphics matrix transform


    【解决方案1】:

    这是寻找保留直线的四边形之间的映射的特殊情况。这些通常称为单应变换。在这里,一个四边形是一个矩形,所以这是一个流行的特殊情况。您可以搜索这些术语(“quad to quad”等)来查找解释和代码,但这里有一些适合您的网站。

    Perspective Transform Estimation

    a gaming forum discussion

    extracting a quadrilateral image to a rectangle

    Projective Warping & Mapping

    ProjectiveMappings for ImageWarping,作者 Paul Heckbert。

    数学不是特别令人愉快,但也不是那么难。您还可以从上述链接之一中找到一些代码。

    【讨论】:

      【解决方案2】:

      如果我理解正确,您在矩形的投影中有一个 2D 点,并且您知道矩形所有四个角的 3D(世界)和 2D(图像)坐标。目标是找到投影到给定点的(3D,世界)矩形内部唯一点的 3D 坐标。

      (对矩形的 3D(世界)坐标和 2D(图像)坐标执行下面的步骤 1-3。)

      1. 将矩形的(任意)一个角确定为其“原点”,并将其称为“A”,我们将其视为向量。
      2. 依次标记其他顶点 B、C、D,使 C 与 A 对角。
      3. 计算向量 v=AB 和 w=AD。这些为矩形中的点形成了很好的局部坐标。矩形中的点的形式为 A+rv+sw,其中 r、s 是 [0,1] 范围内的实数。这个事实在世界坐标在图像坐标中是正确的。在世界坐标中,v 和 w 是正交的,但在图像坐标中,它们不是。没关系。
      4. 使用图像坐标,从矩形图像中的点 (x,y) 计算 r 和 s 的值。这可以通过向量方程 (x,y) = A+rv+sw 的线性代数来完成,其中只有 r 和 s 是未知的。它将归结为一个 2x2 矩阵方程,您可以使用 Cramer 规则在代码中进行一般求解。 (如果所需矩阵的行列式为零,则此步骤将中断。这对应于看到矩形边缘的情况。在这种情况下解决方案不是唯一的。如果可能,请特别例外。) 李>
      5. 使用 4 中的 r 和 s 的值,使用向量 A、v、w 计算 A+rv+sw,用于 world 坐标。这是矩形上的世界点。

      【讨论】:

        猜你喜欢
        • 2012-10-30
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 2019-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多