计算将矩形转换为透视形式所需的变换

时间:2017-06-26 11:59:49

标签: math transformation coordinate-transformation

我有一个未转换形式和透视形式的相同矩形。 来自未转换形式和透视形式的坐标都在未转换的坐标系中。

有没有办法重建导致这种转变的转换矩阵?

我认为应该可以通过解决4个角落给出的4个方程来做到这一点,但我不知道从哪里开始。

//编辑: 看起来我在这里是xy问题的受害者。所有答案都基于3d环境。但我在图像上有一个矩形+我知道这个矩形的真实尺寸。我需要知道的是如何将其他已知点转换为透视图像

2 个答案:

答案 0 :(得分:1)

请注意,您有8对相应的参数(每个点的x和y),需要使用8个方程计算8个矩阵参数

//four pairs of such equaions:
x' = (A * x + B * y + C) / (G * x + H * y + 1.0)
y' = (D * x + E * y + F) / (G * x + H * y + 1.0)

发现透视变换矩阵的理论在Paul Heckbert article中有描述。

可以在antigrain library(文件agg_trans_perspective.h

中找到C ++实现

答案 1 :(得分:0)

一种方法是插入转换矩阵中给出的值。它具有易于操作的优点,但它无法帮助您理解它。

要了解变换,请绘制一个垂直屏幕并从上到下查看的图表。画出眼睛。从眼睛到屏幕的线应垂直。然后在屏幕的某个地方画一个点。然后从眼睛到点画一条线,穿过屏幕。

然后进行高中三角测量练习,以计算出点到屏幕上的投影。

相关问题