我有一个网络摄像头倾斜地指向一张桌子,并用它跟踪标记。我在 OpenSceneGraph 中有一个 transformationMatrix,它的转换部分包含从跟踪对象到相机的相对坐标。因为相机是倾斜的,所以当我在桌子上移动标记时,Y 和 Z 轴会更新,尽管我想要更新的是 Z 轴,因为标记的高度不会只改变它到相机。当在 OpenSceneGraph 中的标记上投影模型时,这会产生影响,模型稍微偏离并且当我移动标记周围的 Y 和 Z 值时更新不正确。
所以我的猜测是我需要一个变换矩阵,将每个点与它相乘,这样我就有一个新的坐标系,它位于桌子表面上。像这样: A * v1 = v2 v1 是相机坐标,v2 是我的“表格坐标” 所以我现在所做的是选择 4 个点来“校准”我的系统。所以我将标记放在屏幕的左上角,并将 v1 定义为当前相机坐标,将 v2 定义为 (0,0,0),我对 4 个不同的点进行了此操作。然后利用我从未知矩阵和两个已知向量中得到的线性方程来求解矩阵。
我认为我将为矩阵获得的值将是与相机坐标相乘所需的值,因此模型将在标记上正确更新。但是当我将之前收集的已知相机坐标与矩阵相乘时,我没有得到任何接近我的“表格坐标”的东西。
我的方法完全错误吗,我只是把方程式弄乱了吗?(在 wolframalpha.com 的帮助下解决)有没有更简单或更好的方法来做到这一点?任何帮助都将不胜感激,因为我有点迷茫并且在一些时间压力下:-/谢谢,大卫