开发原则 要使用 ARToolKit开发应用有两个部分:编写应用程序,以及训练对增强现实应用中所用到的真实世界标志的图像处理例程。 使用 ARToolKit编写应用是很简单的:新建一个 AR 应用需要一个简单的框架。我们在这个框架的基础上编写新的应用。同样地,因为应用这个简单的框架,训练模板的过程也被简化。 一个应用程序的主代码必须包含以下步骤: 初始化 1初始化视频捕获,读取标识文件和相机参数 2抓取一帧输入视频的图像 3探测标识以及识别这帧输入视频中的模板 4计算摄像头相对于探测到的标识的转换矩阵 5在探测到的标识上叠加虚拟物体 关闭 6关闭视频捕捉 第二步到第五步一直重复,直到应用程序退出。但是步骤一和步骤六只分别在应用程序的初始化时和关闭时才执行。除了这些步骤之外,一个应用程序还应该对鼠标、键盘或者其他的特殊事件响应。 下一页将详细介绍各个步骤,再接着是讲解如何训练标识(还有处理多个标识的情况)。 开发你的第一个程序:第一部分 Introduction main init mainLoop draw cleanup 介绍 为了详细地示范怎么样开发一个ARToolKit 的应用,我们将一步步地介绍一个现有的例程的源代码:simpleTest(或者在有的版本里是simple)。可以在目录ex amples/simple/里找到这个程序。 程序simpleTest 我们要找的文件名字是 simpleTest.c (或者 simple.c )。这个程序仅仅包含了一个主函数和几个绘制图像的函数。 相应于上节介绍的六个应用步骤的函数列出在表1 中。相应于步骤二到步骤五的函数在 mainLoop 函数(主循环)中被调用。 表格1:相应于ARToolKit 应用程序步骤的函数调用和代码 ARToolKit 步骤 函数 1、应用程序初始化 init 2、抓取一帧输入视频 arVideoGetImage (在主循环中调用) 3、探测标识卡 arDetectMarker(在主循环中调用) 4、计算摄像头的转移矩阵 arGetTransMat(在主循环中调用) 5、画上虚拟物体 draw(在主循环中调用) 6、关闭视频捕捉 cleanup 在这个程序中,最重要的函数是 main ,init , mainloop ,draw 和 cleanup。在本节的其他部分我们将详细地解释这些函数调用。 main Simple 例程中 main 函数的流程如下所示: 其中的初始化例程 init 包含的代码可以初始化视频捕捉,读取标识卡信息和摄像机参数信息,以及设置图像窗口。这相对于《开发原则》中的第一步。接下来,我们通过调用视频开始函数 arVideoCapStart 输入实时状态。再...