基于移动终端的增强现实技术方案(已实现)

本人在研究生学习期间主要研究的课题是:基于移动终端的增强现实技术。主要在Android系统下完成,使用OpenGL,OpenCV,Android NDK编程技术,编程语言主要是Java和C++等。现简单介绍本系统实现的过程,仅供参考:

系统的主要框架如下:


系统的主要模块如下:



由于考虑到图像处理算法即注册算法模块比较复杂,耗时且运行效率低。因此将该模块的实现置于Native层,使用C++完成。模型渲染模块在Java层实现,目前只能解析obj格式模型。使用多线程从SDCard加载需要绘制的模型。

Vuforia SDK的模型主要在native层渲染,感觉这样对模型控制不方便,而且它使用模型的格式是.h文件。用过Vuforia的同学应该可以发现,.h文件数据量一般比较大。就目前我所了解的,这种在Native层的模型放在程序JNI文件夹下,只能手动添加,不能像放在SDCard中那样方便处理,可以实现在线实时加载模型。

最后介绍交互方式。我之前也针对Vuforia Sdk写过一个文章,介绍交互方式的实现。那个是需要使用NDK编程的。由于本系统中渲染模块在java层,所以不需要NDK编程。使用一般的Android的触摸屏的触发事件,通过适当的算法计算出手势滑动变化与OpenGL绘制的模型的位置、尺寸、角度的变化关系即可。

最后实现的效果还可以。就是算法没有优化,系统性能和效率跟不上,帧率也比较低。

写这篇文章的目的主要给以后要做这方面研究的人提个思路而已。当然事实证明,我这个也不是最好的。

最近看到一本书,《AndroidApplication Programming with Opencv》,里面介绍Android下使用OpenCV的方法。我以前在做研究的时候,摸索了很长时间,也走了很多弯路。现在推荐这本书给大家,希望大家学得更轻松,少走弯路。PS:这本书是开放源码的哦!其中第五章就介绍了增强现实的案例,它没有使用NDK编程。等我有时间看完他的这个例子,到时候有内容的话我再给大家介绍一下吧!


ARVR技术交流群:129340649

欢迎加入!

^_^本团队专业从事移动增强现实应用开发以及解决方案,有合作请私信联系!^_^


猜你喜欢

转载自blog.csdn.net/ggtaas/article/details/37737821
今日推荐