【问题标题】:How can I project an arbitrary plane identified by 4 points onto a 2d plane?如何将由 4 个点标识的任意平面投影到二维平面上?
【发布时间】:2011-05-12 04:03:15
【问题描述】:

我们试图解决在平面的两种不同表示中定位一个点的问题。我们拥有的第一个平面被旋转以创建透视图;第二个是同一平面的二维视图。我们在每个我们知道是等效的计划上都有 4 分。问题是如果我们在平面 1 中有一个任意点,我们如何找到平面 2 中的对应点?

最好说明用例以最好地阐明问题。我们在左侧有一张图片。

Projective plane

空间二维布局图

所以我们得到的是两张图片中的红色方块。请注意,如果可能的话,我希望 2D 空间不一定是正方形。这些都可以提前提供给我们并且是已知的。在第一张图片中,我还在飞机上布置了绿点。我希望能够将图 1 中的点投影到图 2 中的空间上。

还要注意图像 1 我没有定义的窗口或眼睛位置。我只知道图像 1 中的红色方块是红色方块形式的图像 2 的变换,并且图像 2 在 2D 空间中。

【问题讨论】:

  • 如果您的照片点有 (x,y,z) ... 或者您假设一些 z ...
  • 如果你喜欢 OpenCV,这个问题被称为寻找单应性 (cv::findhomography)。完成后,第一个图像中的任何点都将映射到第二个视图中,应用 x'=Hx 在齐次坐标中。

标签: graphics 3d geometry projective-geometry planerotation


【解决方案1】:

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

Perspective Transform Estimation

a gaming forum discussion

extracting a quadrilateral image to a rectangle

Projective Mappings for Image Warping 作者:Paul Heckbert。

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

更新

这是我的最爱之一:Computing a projective transformation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2018-06-13
    • 1970-01-01
    • 2019-11-10
    • 2019-09-24
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    相关资源
    最近更新 更多