VR/AR动手玩(一):在Android应用中集成opencv
来源:互联网 发布:mac突然无法连接wifi 编辑:程序博客网 时间:2024/06/07 22:47
决定开始DIY VR玩玩(其实我想说的是AR~~)。目标是1、识别并显示视野范围内人员、物体的信息(表目标);2、如果可以的话,将人物替换成衤果亻本(里目标)。
这是一个严肃的表情
动手之前,想想需要的知识储备:
1、opencv图像识别
2、android开发
3、虚幻引擎安卓开发(或许不用也行)
4、光学知识
5、硬件组装和设备驱动
幸好每样都玩过一点点,开始动手。
一、在Android应用中集成opencv
opencv官网默认介绍的是eclipse下的安装,然而现在安卓改用Android Studio了,查找了一些资料,并不麻烦,下面是步骤。
首先创建安卓工程,例如E:\Projects\VRShow。再从opencv官网下载OpenCV-3.1.0-android-sdk.zip并解压,假设在E:\tmp\OpenCV-android-sdk目录。
在Android Studio中,选择菜单File->New->Import Module。
选择opencv路径,在本例中,应该是在E:\tmp\OpenCV-android-sdk\sdk\java。选择好路径后,会自动生成Module name为openCVLibrary310。
接下来弹出的对话框,按默认保持三个勾都选上就可以了(没有试过不选会有什么结果)。
接下来要修改opencv的gradle配置。
在当前视图下,可能会看不到openCVLibrary310的路径:
需要先将Android改为Project,如下图所示,这样才能打开openCVLibrary310下的build.gradle文件。
这一步的重点是修改opencv里面的Android SDK版本,使之与app一致。所以先打开app/build.gradle文件,记下compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion这四个值,然后复制到openCVLibrary310/build.gradle,依次替换相应的值。
接下来执行菜单Build->Make Project。构建完成后,再回到Android视图,就会看到已经出现openCVLibrary310模块了。
然而在app中运行opencv还需要二进制库文件,二进制库就在opencv的解压目录下。将E:\tmp\OpenCV-android-sdk\sdk\native\libs整个目录拷贝到项目文件夹的openCVLibrary/src/main目录下,并改名为jniLibs。在本例中,即是E:\Projects\VRShow\openCVLibrary310\src\main\jniLibs。
现在添加对opencv的依赖,点击菜单File->Project Structure,选择app模块下的Dependencies标签,并点击右边的+号。
添加Module Dependency,并选择opencv:
OK确认后,测试一下opencv是否能运行,在Activity的onCreate()方法中加入如下代码:
if(OpenCVLoader.initDebug()) { Log.e("efantest", "OpenCV init OK.");} else { Log.e("efantest", "OpenCV init Failed.");}
马上运行一下,应该能在logcat看到结果。下一步,要在Android工程下调用opencv试试。
参考资料http://stackoverflow.com/questions/27406303/opencv-in-android-studio
- VR/AR动手玩(一):在Android应用中集成opencv
- VR/AR动手玩(三):Android使用jni调用opencv
- VR/AR动手玩(二):编译opencv_contrib模块
- 中德“VR/AR及工业应用”研讨会即将召开
- (VR, AR)unity3d和Android java通信 传输 byte图片在Texture2d显示
- (10)unity入门,unity的应用VR、AR
- 基于EasyAR的Android端AR应用开发(一)
- AR/VR应用开发学习路线
- Ar 将虚拟东西放在你周围 ,Vr 将你放在虚拟环境中
- VR/AR...
- Android程序员看世界--AR/VR(1)
- AR/VR learning (1)--artoolkit在android studio 上的配置
- AR/VR learning (2)--unity3D在android 上的手势识别与检测
- Kotlin在Android中的应用之Studio集成Kotlin(一)
- 在android应用中集成百度地图sdk
- 贪吃蛇—蓝鸥游戏/AR/VR在线公开课小项目Dome(一)
- 陀螺仪(可用于AR/VR)
- 基于标记的AR的opencv实现(一)
- Windows下的Mysql日志操作
- 无限轮播
- abas ERP – ERP行业中的“隐藏冠军”
- dos中mybatis generator自动生成出现xml parsers Error 前言中不允许有内容解决方法
- JavaScript跨域总结与解决办法
- VR/AR动手玩(一):在Android应用中集成opencv
- JS获取当前时间戳的方法
- BPMN2.0规范
- ViewPager和ViewPager的冲突
- CentOS、Ubuntu、Debian三个linux比较异同
- 为自己的AndroidStudio添加Material Design Icons ADT Template
- Java之内存分析和String对象
- 如何用Beyond Compare比较不同名称的子文件夹
- Android 组件布局