将2D点映射到新的视角

rob*_*ran 5 image-processing computer-vision map-projections

这是我的第一篇文章!

我正在尝试制作一个可以确定网格(图像)中的某些点是亮还是暗的应用程序.原始网格定义明确(我知道所有点应该相对于角落的位置).一旦我知道该点应该在哪里,我就可以很容易地判断它是亮还是暗.

问题是,我想从手持相机拍摄的网格图像中做到这一点.很明显,由于手的移动,视角会发生变化,我需要做一些数学计算,确定新点相对于角点的位置(我知道如何检测角点).

我在其他帖子中读到,在转换过程中保留的唯一属性是交叉比率和发生率.具体来说,这篇文章让我朝着正确的方向前进,但作者没有完成数学计算.请注意,在此示例中,作者将从倾斜的视角转向鸟瞰视图,而我正在尝试相反的做法.但数学应该是相同的.


从张贴投影转换

(显然我不能发布图像,因为我是新手,但图片在上面的帖子中)

1)在由段AD和CP定义的线的交叉点处找到点C'.

2)在由段AD和BP定义的线的交叉点处找到点B'.

3)确定B'DAC'的交叉比率,即r =(BA'*DC')/(DA*B'C').

4)构造投影线F'HEG'.这些点的交叉比等于r,即r =(F'E*HG')/(HE*F'G').

5)F'F和G'G将在投影点Q相交,因此等于交叉比率并知道正方形边长,你可以用一些算术体操来确定Q的位置.


我的问题是第4步,构建F'HEG'线.只知道2点和所需的交叉比率,是否有可能构建一条4点线?我觉得这是1个方程,有2个未知数.

如果有人能帮助我,我将非常感激!

对不起那么久了,

PS我本来刚刚发布在那个论坛上,但这是我的第一篇帖子,所以我还没有得到许可.

jil*_*wit 0

由于 F'、H、E 和 G 位于 2D 空间中的一条线上,因此您的问题从一开始就受到很大限制。您所拥有的未知数是:

  1. 一些支撑点(您知道线穿过的点),请使用第一个点。
  2. 线的方向(它从支撑点到哪里。为此,您使用从第一个点到第二个点的方向)
  3. 沿该线的点的位置。您已经有两个(两个点),所以您只需要另外两个数字。

所需的交叉比实际上是两个方程(x 坐标和 y 坐标各一个),因此您有两个方程和两个未知数。