Math 不使用opencv将相机图像扭曲为二维四边形

Math 不使用opencv将相机图像扭曲为二维四边形,math,graphics,3d,computer-vision,ogre,Math,Graphics,3d,Computer Vision,Ogre,我正在做AR应用程序,在那里我有相机的姿势,方向和位置 给定世界坐标中的4个点,如何将相机图像包装到2D四边形中 因此,给出右图,我想得到一个如左图所示的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) 您可以在中找到透视变换数学的描述 实现示例(C+

我正在做AR应用程序,在那里我有相机的姿势,方向和位置

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


因此,给出右图,我想得到一个如左图所示的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)
您可以在中找到透视变换数学的描述


实现示例(C++):(file
agg_trans_perspective.h

你要么使用一个库,要么研究必要的数学,然后自己实现一切。你的问题太宽泛了。你可能想要的是透视纹理贴图,但它的意义正好相反。请参阅一些示例代码。这就是答案,我现在关心的是,我是否应该捕获图像并将上述数学应用于保存在磁盘上的纹理?我不知道您的磁盘文件,但是是的,persp矩阵。变换应应用于所有点。看起来烟盒下面是灰色的纸,所以它的矩阵应该不同(另一个平面)。很抱歉没有澄清,我将在网络摄像头工作时分配4个点,然后我将裁剪该图像,然后将其保存到磁盘,然后加载,应用persp。改变它?我将如何在OpenGL中做到这一点?我应该对纹理进行渲染吗?