文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

本教程旨在帮助您安装和配置opencv4android SDK。

虽然该教程是在MS Windows7下写的,但是在GNU Linux和Apple MAC OS上也可以运行。

在使用这个教程前我们假设您已经安装和配置好了以下软件:

  • JDK

  • Android SDK 和NDK

  • Eclipse IDE

  • Eclipse的ADT和CDT插件

     

如果对上述情况需要帮助的话,请参考我们之前发布的安卓开发指南

如果您彻底遵循以上步骤发生的任何问题,请随时通过OpenCV4Android讨论组或者OpenCV论坛联系我们,我们会尽力帮助你。

第 1 段(可获 2 积分)

Tegra安卓开发包用户

您可能已经在使用NVIDIA为安卓开发环境发布的Tegra安卓开发包 (TADP) 。

安卓开发工具TADP 2.0 已经包含了OpenCV4 安卓开发包,如果您已经在系统中安装了,您可以跳过此章节直接运行 OpenCV 示例

更多关于TADP的介绍你可以参考安卓开发指南.

概论

OpenCV4安卓开发包为安卓应用开发提供了OpenCV库。开发包结构内容如下:

第 2 段(可获 2 积分)
OpenCV-2.4.11-android-sdk
|_ apk
|   |_ OpenCV_2.4.11_binary_pack_armv7a.apk
|   |_ OpenCV_2.4.11_Manager_2.20_XXX.apk
|
|_ doc
|_ samples
|_ sdk
|    |_ etc
|    |_ java
|    |_ native
|          |_ 3rdparty
|          |_ jni
|          |_ libs
|               |_ armeabi
|               |_ armeabi-v7a
|               |_ x86
|
|_ LICENSE
|_ README.android
  • sdk文件夹包含用于Android的OpenCV API和库:

  • sdk / java文件夹包含一个Android库Eclipse项目,提供OpenCV Java API,可以导入到开发人员的工作空间;

  • sdk / native文件夹包含用于ARM-v5,ARM-v7a和x86架构的OpenCV C ++头文件(用于JNI代码)和本机Android库(* .so和* .a)

  • sdk / etc文件夹包含与OpenCV一起分发的Haar和LBP级联。

  • apk文件夹包含应安装在目标Android设备上的Android软件包,以通过OpenCV Manager API启用OpenCV库访问(请参阅下面的详细信息)。

    在有权访问Google Play Market(和Internet)的生产设备上,这些软件包将在使用OpenCV Manager API首次启动应用程序时从Market安装。但是没有Market或Internet连接的devkits需要手动安装此软件包。如果需要,安装Manager.apk和可选的binary_pack.apk。有关详细信息,请参阅如何选择适当版本的OpenCV Manager

    注意

    因为OpenCV团队可以在Market上发布此软件包的更新版本,所以从Internet安装是最好的方法。

  • samples文件夹包含示例应用程序项目及其预构建包(APK)。将它们导入到Eclipse工作空间(如下所述),并浏览代码以了解OpenCV在Android上的可能使用方式。

  • doc文件夹包含PDF格式的各种OpenCV文档。它也可以通过http://docs.opencv.org在线获取。

    注意

    最新的文档(每晚构建)位于http://docs.opencv.org/2.4。一般来说,它是最新的,但也可以yongyu参考尚未发布的功能。

第 3 段(可获 2 积分)

从Andriod SDK的OpenCV2.4.3版本开始用OpenCV管理端API库初始化。基于Andriod服务的OpenCV管理端为OpenCV应用程序开发人员提供以下解决方案:

  • APK文件大小更紧凑,因为所有应用程序的二进制文件都来自管理端并不在本地存储;

  • 在所有支持的平台上自动启用硬件优化;

  • 自动进行更新和Bug修复;

  • 可信赖的OpenCV库来源,所有的OpenCV包都在谷歌应用商店发布;

更多关于OpenCV管理端的信息请看这里:

第 4 段(可获 2 积分)
  • 幻灯片
  • 参考手册

OpenCV4Android SDK安装手册

获得OpenCV4Android SDK

  1. 去提供OpenCV的下载界面然后下载最近版本。目前的最新版本是 OpenCV-2.4.11-android-sdk.zip.
  2. 创建一个新的文件夹用于OpenCV开发。在本教程中我们将解压下载的OpenCV SDK到 C:\Work\OpenCV4Android\ directory目录中。

          注意:
          在路径中最好不要有空格的存在。否则你可能在使用 ndk-build 时出现问题。

在Unix上您可以使用下面的命令:

unzip ~/Downloads/OpenCV-2.4.11-android-sdk.zip
第 5 段(可获 2 积分)

将OpenCV库和样本导入Eclipse

  1. 启动Eclipse并选择您的工作空间的位置。

    我们建议从新的干净的工作空间开始使用OpenCV for Android。 例如,可以在已解包的OpenCV4Android SDK软件包的文件夹中创建一个新的Eclipse工作空间:

    Choosing C:\Work\android-opencv\ as workspace location
  2. 将OpenCV库和样本导入工作区。

    OpenCV库被打包为一个随时可用的Android库项目。 你可以直接在你的项目中引用它。

    OpenCV-2.4.11-android-sdk.zip中包含的每个示例都是已经引用OpenCV库的常规Android项目。 按照以下步骤将OpenCV和示例导入工作空间:

    注意

    OpenCV示例依赖于OpenCV库项目,所以不要忘记将它导入到您的工作空间。

    • 右键单击包资源管理器(Package Explorer)窗口,然后从上下文菜单中选择导入(Import)...选项:

      Select Import... from context menu
    • 在主面板中,选择“将现有项目导入工作区(General ‣ Existing Projects into Workspace)”,然后按“下一步(Next )”按钮:

      General> Existing Projects into Workspace
    • 在选择根目录(Select root directory)字段中,找到您的OpenCV软件包文件夹。 Eclipse会自动定位OpenCV库和示例:

      Locate OpenCV library and samples
    • 单击完成(Finish )按钮完成导入操作。

    单击完成按钮之后,Eclipse会将所有选定的项目加载到工作空间中,并且在构建OpenCV示例时需要等待一段时间。 只需给Eclipse一分钟即可完成初始化。

    警告

    初始导入后,在非Windows(Linux和Mac OS)操作系统上,Eclipse仍将显示使用本机C ++代码的应用程序的构建错误。 要解决这些问题,请执行以下操作:

    打开项目属性 - > C / C ++ Build,并将“Build command”文本替换为“$ {NDKROOT} / ndk-build”(删除末尾的.cmd)。

    注意
     

    • 右键单击OpenCV库项目 - > Android工具 - >修复项目属性,然后在菜单点击项目 - >清除... - >清除所有
    • 右键单击项目中的错误 - >属性 - > Android,确保目标被选中,并且是Android 3.0或更高版本
    • 检查问题视图窗口中的构建错误,并尝试自己解决它们
    Configure CDT

    一旦Eclipse构建完成,您将得到一个没有任何构建错误的干净的工作空间:

    OpenCV package imported into Eclipse
第 6 段(可获 2 积分)

运行OpenCV示例

此时你可以构建和运行示例。需要知道的是,运行面部识别和教程二的混合处理包含一些本机代码还需要为Eclipse 安装安卓NDK和NDK/CDT插件。如果你还没有安卓这些工具,看到这里需要参看安卓开发入门的相应章节。

警告

有些示例需要用到安卓Java相机,需要访问AVD。但大多数示例使用OpenCV的本地相机,当然也有可能在模拟器里不能运行。

第 7 段(可获 2 积分)

注意

最近的Android SDK工具,修订版19+可以运行ARM v7a操作系统映像,但它们不适用于所有Android版本。

嗯,从Eclipse运行示例非常简单:

  • 使用Android SDK中的adb工具连接您的设备,或者创建具有相机支持的模拟器。

  • 选择要在包资源管理器(Package Explorer)中启动的项目,只需按Ctrl + F11或从主菜单中选择运行‣运行(Run ‣ Run ),或单击工具栏上的运行(Run)按钮。

    注意

    Android模拟器可能需要几分钟的时间才能启动。 所以,请耐心等待。

  • 在第一次运行时,Eclipse会询问您应用程序的运行模式:

    Run sample as Android Application
  • 选择Android应用程序选项,然后单击确定按钮。 Eclipse将安装并运行示例。

    在第一次启动时,您可能没有安装OpenCV Manager软件包。 在这种情况下,您将看到以下消息:

    You will see this message if you have no OpenCV Manager installed

    您需要安装OpenCV Manager和相应的OpenCV二进制包,就可以避免出现上述信息。 如果在您的设备/模拟器上安装了Google Play Market,仅需要点击是(Yes)。 它就会将您重定向到Google Play Market上的相应页面。

    如果您不能访问Market,这通常发生在仿真器的情况下,您需要手动安装OpenCV4Android SDK文件夹中的包。 有关详细信息,请参阅如何选择适当版本的OpenCV Manager

    1
    <Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.11_Manager_2.20_armv7a-neon.apk
    

    注意

    armeabi,armv7a-neon,arm7a-neon-android8,mips和x86代表平台目标:

    • armeabi用于使用Android API 8+的ARM v5和ARM v6架构,
    • armv7a-neon用于使用Android API 9+的NEON优化的ARM v7,
    • arm7a-neon-android8用于使用Android API 8的NEON优化的ARM v7,
    • mips用于使用Android API 9+的MIPS架构,
    • x86用于使用Android API 9+的Intel x86 CPU。

    如果使用硬件设备进行测试/调试,请运行以下命令来了解其CPU架构:

    adb shell getprop ro.product.cpu.abi
    

    如果您使用AVD仿真器,请转到窗口(Window)> AVD管理器(AVD Manager),以查看可用设备的列表。在所选设备的上下文菜单中单击编辑(Edit )。在弹出窗口中,找到CPU字段。

    您也可以参阅如何选择正确的OpenCV Manager版本

    完成后,您将能够无缝地在设备/仿真器上运行OpenCV示例。

  • 这是一个示例- 图像操纵示例,运行在模拟器配置的相机预览之上。

    'Sample - image-manipulations' running Canny
第 8 段(可获 2 积分)

接下来

现在, 当你安装并配置完成了 OpenCV4Adroid SDK 的实例, 你可能想继续在你的应用程序中使用它. 可以在这里找到教程 Android Development with OpenCV .

第 9 段(可获 2 积分)

文章评论