2019-2-10
【零基础学习ARToolkit系列之六】摄像头和标识关系
在上面的图像中,可以看到标识卡的坐标(蓝色 Z 轴,绿色 Y 轴,红色 X 轴)。
标识卡和摄像机之间的关系非常重要,它们之间的转换使多个坐标系统的工作成为可能。 在这些坐标系统的基础上,同样可以得到任何两个不同的坐标系统之间的转换关系。
在 relationtest.c 文件。可以得到和 simplem .c一样的多个物体。主要 的区别是增加了以下代码:
if( object[0].visible >= 0 && object[1].visible >= 0 ) { double wmat1[3][4], wmat2[3][4];
arUtilMatInv(object[0].trans, wmat1);
arUtilMatMul(wmat1, object[1].trans, wmat2);
for( j = 0; j < 3; j++ ) {
for( i = 0; i < 4; i++ ) printf("%8.4f “, wmat2[j][i]); printf(”\n"); }
printf("\n\n");
这段代码计算了两个标识之间的相对转移矩阵。object[0].trans 是标识卡 1 在摄像机坐 标系里面的转移矩阵,object[1].trans 是标识卡 2 在摄像机坐标系里面的转移矩阵.因此 object[0].trans的转置乘以 object[1].trans就得到了标识卡 2 在标识卡 1 坐标系里面的转移矩 阵。摄像机和标识卡之间的转换可以让多个坐标系统同时工作,所以一个摄像头下可以显示两个标识卡上的物体也可以得到不同坐标系之间的转换。