OpenCV For Android SDK
这个教程会帮助你安装和配置OpenCV4Android SDK。
这个教程是在我的Windows7上进行编写,而且它可以在GUN Linux和Apple Mac OS上很好的运行。
这个教程假设你已经安装和配置了如下的软件:
- JDK
- Android SDK and NDK
- Eclipse IDE
- Eclipse ADT and CDT插件
如果你需要上面的任何帮助,你可以参考《Android开发介绍》教程。
通过如下的步骤如果你有错误和冲突,可以联系OpenCV4Android讨论组或者OpenCV社区。我将以最好的方式来帮助你。
使用Tegra android开发包的用户
你可能在使用NVIDIA发布的Tegra Android开发包(TADP)搭建起来的Android开发环境。
TADP 2.0除了包含Android开发工具还包含OpenCV4Android SDK,所以它已经安装到了你的系统中,就可以本教程的例子段。
更多关于TADP的详细教程可以在Android开发介绍找到。
一般信息
OpenCV4Android SDK包可以使用OpenCV库开发Android应用程序。
如下的内容是包结构:
OpenCV-2.4.9-android-sdk
|_ apk
| |_ OpenCV_2.4.9_binary_pack_armv7a.apk
| |_ OpenCV_2.4.9_Manager_2.18_XXX.apk
|
|_ doc
|_ samples
|_ sdk
| |_ etc
| |_ java
| |_ native
| |_ 3rdparty
| |_ jni
| |_ libs
| |_ armeabi
| |_ armeabi-v7a
| |_ x86
|
|_ LICENSE
|_ README.android
sdk
文件夹包含OpenCV Android版本的API和库:sdk/java
文件夹包含一个Android库,这个库包含可以引入开发者的工作控件,为Eclipse项目提供OpenCV APIsdk/native
文件夹包含OpenCV C++的头文件(JNI 代码)和Android本地库(* .so和* .a)分别支持ARM-v5、ARM-v7和x86架构。sdk/etc
文件夹包文件OpenCV的Haar和LBP分布式文件。apk
文件夹包含可安装的Android包,它可以通过OpenCV的API管理器访问OpenCV的库(下面有详解)。Android设备可以访问Google Play应用市场,安装包将通过商店进行安装,在程序第一次启动的时候应用程序会使用OpenCV API管理器。但如果没有应用市场也无法链接互联网,就需要进行手动安装。安装Manager.apk选择安装binary_pack.apk。详见
Manager Selection
注意:从互联网安装是最好的方式,因为OpenCV团队可能在应用市场上发布了更新的版本。
samples
文件夹包含实例项目他们都是预编译版本,都可以编译出APK。他们被引入了Eclipse工作空间可以通过阅读代码的方式来学习OpenCV在Android上的编程。doc
文件夹包含很多PDF格式的OpenCV文档,当然也可以进行在线阅读 http://docs.opencv.org。
注意:最新的文档(nightly build)在 http://docs.opencv.org/2.4。通常它会有更多的更新,而且你还可以参考未发布功能。
从OpenCV4Android 2.4.3版本开始使用OpenCV API管理器初始化库。OpenCV Manager是基于Android service的解决方案对OpenCV应用程序开发者有如下好处:
- 紧凑的APK大小,因为所有的应用程序通过管理器使用相同的二进制文件,他们内部并不存贮本地库。
- 硬件会自动的打开所支持平台的优化方式。
- 自动升级和bug修复。
可信的OpenCV库,所有的OpenCV包被发布到Google Play。
OpenCV 管理器的附件信息:
- Reference Manual
OpenCV4Android SDK安装手册
获取OpenCV4Android SDK
- 到SourceForge下载最新版本的OpenCV。当前的最新版本是OpenCV-2.4.9-android-sdk.zip。
注意:更好地使用一个没有空格的路径。否则你使用ndk-build可能会有问题。
- 打开SDK架构到选择目录。可以打开选择一些比较常用的架构。
在类Unix系统你可以使用下面的命令行:
unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
将OpenCV库和sample引入Eclipse
1.打开Eclipse选择workspace的位置。
我们推荐为OpenCV for Android创建一个新的workspace。打开openCV For Android包,为sample创建一个新的workspace:
2.将OpenCV库和sample导入worksspace
OpenCV库是一Android库项目方式存在的一个包,可以很方便的被你的项目引用。
在OpenCV-2.4.9-android-sdk.zip
你的每个sample都引用了OpenCV库。下面是引入OpenCV和sample到workspace中:
- 右键点击Package Explorer窗口并选择Import…选项:
- 在窗口选择Gerneral->Exising Projects into Workspace并点击Next按钮。
- 选择OpenCV包的根目录。Eclipse会自动定位OpenCV库和sample的位置:
- 点击Finish按钮完成导入。
注意:
OpenCV sample都依赖Opencv库项目,所以导入项目的时候不要将其遗漏。
点击Finsh按钮之后Eclipse会加载所有选择上的项目,将其导入workspace中,编译的时候你需要等待几分钟。
Eclipse编译完成之后,workspace里的错误提示将消失:
运行OpenCV的sample
在这点上你需要能编译和运行sample。请注意 face-detection 和 Tutorial 2 - Mixed Processing包含native 代码,需要Eclipse安装了 NDK/CDT 插件,以及 Android NDK 才能完成APK的编译。如果你没有安装这些工具,你可以参考《Android开发介绍》。
警告
请考虑到一些sample会使用Android Camera的Java API,也要确保AVD带有该硬件。
注意
最近Android SDK 版本19+ 可以运行ARM v7a的系统镜像,但不保证所有的Android版本都兼容。
好,在Eclipse运行sample非常简单:
- 通过Android SDK里的adb链接设备,或者创建一个支持摄像头的模拟器。
- 查看Managing Virtual Devices文档,有助使用Android模拟器。
- 查看Using Hardware Devices,对使用Android有帮助。
在Package Explorer现在需要运行的项目,按快捷键Ctrl+ F11或者点击右键,在窗口选择Run->Run。
提示:
Android模拟器需要几分钟才能启动,所以需要耐心。第一次运行Eclipse需要你选择应用程序的运行模式:
选择Android Application选项并点击OK按钮。Eclipse会安装并运行sample。
在第一次运行的情况下,OpenCV Manager不会存在,所以你会看到如下提示:
你需要安装OpenCV Manager和适当的OpenCV二进制库。如果你的硬件设备上有Google Play商店,它会定位到正确的Google Play商店里面。
如果你不能访问应用商店,这个通常发生在模拟器上你需要手动安装这个包。
<Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
提示:
armeabi, armv7a-neon, arm7a-neon-android8, mips and x86 stand for platform targets:
armeabi is for ARM v5 and ARM v6 architectures with Android API 8+,
armv7a-neon is for NEON-optimized ARM v7 with Android API 9+,
arm7a-neon-android8 is for NEON-optimized ARM v7 with Android API 8,
mips is for MIPS architecture with Android API 9+,
x86 is for Intel x86 CPUs with Android API 9+.
如果使用硬件设备来测试或者debug,运行下面的命令来学习CPU架构:
adb shell getprop ro.product.cpu.abi
如果你使用模拟器点击 Window -> AVD Manager查看有效设备。选中设备后点击Edit。在窗口内查看CPU的内容。
当完成后,你可以运行OpenCV的sample了。
- 这是一个simple中的image-manipulations,在模拟器中使用前置摄像头。
What’s next
现在你已经安装了OpenCV For Android SDK并且对其进行了配置,下一步就是使用OpenCV开发应用程序了。你可以在教程《OpenCV的Android开发》中学会如何去做。
出自:http://docs.opencv.org/master/da/d2a/tutorial_O4A_SDK.html