在没有 opencv 的情况下将相机图像包装成 2D Quad

Warpping a camera image into 2D Quad without opencv

我正在做 AR 应用程序,其中我有相机姿势方向和位置。

给定世界坐标中的 4 个点,我如何将相机图像包装成 2D 四边形?

所以给定右图,我想得到一个二维四边形,如左图所示。

透视变换矩阵的参数可以使用点的初始坐标和扭曲坐标的8个方程组来计算:

x1' = (A * x1 + B * y1 + C) / (G * x1 + H * y1 + 1.0)
y1' = (D * x1 + E * y1 + F) / (G * x1 + H * y1 + 1.0)

您可以在 Paul Heckbert article 中找到透视变换数学的描述。

实现示例 (C++):Antigrain library(文件 agg_trans_perspective.h