【一点点心得】 旧版ARToolkit和openCV整合问题

        在此提到的ARToolkit 是2.72.1 的版本,搭配的是Visual Studio 2015,openCV版本3.0.0, openGL版本4.2.0。VS2015的兼容性目前来看还是很好的。

        在把 openCV 的识别部分和 AR 的部分分别完成之后,想要将两者整合到一个程序中,就遇上了麻烦。ARToolkit的关键主要循环部分需要使用gsub中的argMainLoop函数,但是一旦进入argMainLoop(mouseEvent, keyEvent, mainLoop)之后,这个函数就会无限循环直到关闭程序。

        所以可行的办法是,将openCV识别部分的代码全部加入到mainLoop里,把图像处理好,再传递给ARUint8*指针画openGL就好。

        同理,数据传递进出也可以在mainLoop中实现。

        时间仓促,暂时不上代码,见谅。

        p.s.最近已经将ARToolkit升级到 5, 发现处理方法还是一样,将外部图像处理好再送到ARgetImage()

        再p.s. 不管旧版还是 5.xx 版本, mainloop里的所有 return; 和 continue; 之前要都加上 delete[] PtrOfImage(图像指针及其内存);  不然最后会内存溢出。ARToolkit 的 argSwapBuffers 函数似乎没有清理内存的作用。不过如有人清楚 ARToolkit 清理内存的机制,请告知,在此先多谢。

你可能感兴趣的:(程序杂症,工作日志)