• OpenCV4Android 之 OpenCV4Android SDK


    本篇是 OpenCV4Android 三篇系列之二 —— OpenCV4Android SDK

    教程旨在帮助大家安装和配置OpenCV4Android SDK。

    这篇指南以Windows 7配置为基础,但是它也同样适用于GUN linux 和 Apple Mac系统。

    教程假定你已经安装和配置了如下的软件:

    • JDK
    • Android SDK and NDK
    • Eclipse IDE
    • ADT and CDT plugins for Eclipse

    如果你需要任何以上的帮助,可以参考我的译文Android 开发简介,或者访问官方文档教程Introduction into Android Development

    如果你在下面的步骤中不幸的遇到了问题,请通过OpenCV4Android 讨论组或者OpenCV 的Q&A forum联系我们,我们将尽我们最大努力帮你解决问题。

    Tegra Android 开发包用户

    你可能使用了由 NVIDIA 发布的Tegra Android Development Pack (TADP)Android开发包,除了Android开发工具外,TADP 2.0 还包括了OpenCV4Android SDK,所以它已经安装在你的系统上了,你完全可以忽略教程的运行OpenCV样例部分。

    更多的关于TADP的细节请移步Introduction into Android Development

    概述

    OpenCV4Android SDK包能够让Android应用程序访问OpenCV库。

    库的结构如下:

    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 文件夹包含 Android 的 OpenCV API 和库:
    • sdk/java 文件夹包含了一个 Android 的 Eclipse 工程库,该库通过 import 到用户的工作空间来提供了Java API接口。
    • sdk/native 文件夹包含了 OpenCV C++ 头文件(为了JNI代码)和 Android 库(*.so 和 *.a) 为不同的 CPU 体系结构,如:ARM-v5, ARM-v7a 和x86 。
    • sdk/etc 文件夹包含了 Haar 和 LBP 级联分类器。
    • apk 文件夹包含了Android 的发布包,它应该被安装在目标Android 设备上以保证能够通过OpenCV Manager API 来访问 OpenCV 库。

        当设备第一次使用 OpenCV Manager API 时,设备要求用户从Google Play Market上下载 Manager.apk 。没有网络或者在虚拟机上就需要手动的安装。详细访问:怎么选择合适版本的OpenCV Manager

    • samples 文件夹包含了一些样例应用程序工程和它们的构建包(APK)。Import 它们到 Eclipse 工作空间然后可以浏览代码从而学习怎样在 Android上使用 OpenCV。
    • doc 文件夹包含了不同的 OpenCV 文档,它们都是 PDF 格式的,同样可以访问官网。

    自从OpenCV 2.4.3 开始,OpenCV4Android SDK 为库的初始化使用了OpenCV Manager API。OpenCV Manager一项 Android 服务,它为 OpenCV 应该程序的开发者提供了如下的好处:

    • 压缩了apk的大小,因为所有的程序使用相同的来自Manager二进制库,所以它们各自不需要存储libs 从而减少体积。
    • 软件特殊优化可以自动支持所有平台。
    • 可信的 OpenCV 库资源,OpenCV 的所有包都发布在 Google Play上;额外的关于OpenCV Manager 请访问:
    • Slides
    • Reference Manual

    手动配置 OpenCV4Android SDK

    获取 OpenCV4Android SDK

    1. 访问OpenCV的下载页面 SourceForge然后下载最新的版本。

    2. 为OpenCV开发新建文件夹,教程中,我们解压 OpenCV SDK 到 C:WorkOpenCV4Android directory。

    3. 解压SDK包到选择的目录中。

    导入 OpenCV 库到和样例到 Eclipse

    1. 打开Eclipse,选择工作空间位置

    建议大家新建一个新的工作空间,然后开始操练 OpenCV for Android。如下图所示:

    Choosing C:Workandroid-opencv as workspace location

    2. 导入 OpenCV 库和样例程序到工作空间。

    OpenCV 库已经被打包成了一个Android 库工程,以便被其它Android 程序调用。

    SDK 中的每一个样例程序都已经引用了OpenCV 库。下面我们来把来把它们导入到工作空间吧。(注:OpenCV 样例程序依赖于 OpenCV 库工程,所以不要忘记把库导入到工作空间)

    • 右击窗口Package Explorer ,然后选择在内容菜单里选择Import...
    Select Import... from context menu
    • 在主面板上选择 General ‣ Existing Projects into Workspace ,然后单击 Next 按钮。 
    eclipse_6_import_existing_projects
    • Select root directory 定位你的 OpenCV 包文件夹。 Eclipse 能够在动的找到 OpenCV 库和样例程序。
    •  
    Locate OpenCV library and samples
    • 点击 Finish 按钮就可以结束导入操作了。

    点击按钮后,Eclipse 会加重所有选择的工程到工作空间,由于需要初始化来构建 OpenCV 样例,可能会消耗一段时间。

    警告

    当导入初始化后,在非Windows 操作系统上 (Linux and Mac OS)  Eclipse 将仍然会在本地 C++ 代码中显示构建错误。为了解决这个问题,请按下面的步骤操作:

    打开Project Properties -> C/C++ Build, 然后把 "Build command" 文本区的内容替换为 "${NDKROOT}/ndk-build" (把末尾的.cmd去掉).

    注意

    有些情况下构建错误不会显示,可以尝试下面的操作:

    • 右击 OpenCV Library 项目-> Android Tools -> Fix Project Properties, 然后菜单 Project -> Clean... -> Clean all
    • 右击有错误的项目 -> Properties -> Android, 确保目标被选中且版本为 Android 3.0 或者更高。
    • Problems 试图窗口中检查错误,然后自己努力解决它。

    eclipse_cdt_cfg4

    一旦 Eclipse 完成了构建后你的工作空间将没有错误,如下:

    eclipse_10_crystal_clean

    运行 OpenCV 样例

    此刻我们将要构建和运行样例,不过要时刻记住,face-detectionTutorial 2 – Mixed 包含了一写本地代码,因此需要 Android NDK 和 NDK/CDT 插件。如果你还没有安装这些工具的话,请访问相应的部分 Introduction into Android Development。或者访问我的译文 OpenCV4Android 之 Android 开发简介

    警告:样例中可以通过 AVD (安卓虚拟设备)访问 Android Java Camera API, 但是使用了本地代码的样例通过虚拟设备可能会出问题。

    注意:Recent Android SDK tools, revision 19+ can run ARM v7a OS images but they available not for all Android versions

    好了,开始运行例子吧。非常简单滴。

    • 用adb 工具连接你的设备或者创建一个支持相机的虚拟机。
    • 选择你想运行的工程按 Ctrl + F11 运行或者在菜单中选择选项 Run ‣ Run,也可以按工具栏中的 Run 按钮。

    注意:Android 虚拟机起动很慢,所以耐心点吧。或许可以喝杯咖啡。

    • 第一次运行 Eclipse 可能会询问你想运行的应用程序的类型:

    eclipse_11_run_as

    • 选择 Android Application 选项 并按 OK 按钮。Eclipse 将会安装和运行程序。

    起动是如果你没有安装 OpenCV Manager包的话,将会看到下面的提示信息。

    android_emulator_opencv_manager_fail

    为了解决这个问题,需要安装 OpenCV Manager 和 适当的OpenCV 包。不过你只需要单击 Yes 按钮,Manager 包将会从 Google Play 下载。

    如果你访问不了谷歌市场的话,你也可以到 OpenCV4Android SDK  文件夹中手动安装。具体的请访问 How to select the proper version of OpenCV Manager 了解吧。

    <Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
    • 样例 Sample - image-manipulations运行结果如下:

    emulator_canny

    下一步该做什么? OpenCV4Android SDK

    现在,你已经配置好了 OpenCV4Adroid SDK ,下面可以把 OpenCV 应用到自己的程序中去了。你将在 Android Development with OpenCV 部分学习到具体怎么去做。

  • 相关阅读:
    Lodash JS实用类库 数组操作 延时执行 功能强大
    7.【nuxt起步】-Nuxt与后端数据交互
    vue图片懒加载
    猎鹰与龙飞船基于 Linux,采用 C++、Chromium 与 JS 开发
    | 和 ||,& 和 && 的区别
    Linux安装.net core
    Linux下程序后台运行:nohup和&
    vuejs如何调试代码
    全局安装 Vue cli3 和 继续使用 Vue-cli2.x
    导入sass文件
  • 原文地址:https://www.cnblogs.com/bestheart/p/4187518.html
Copyright © 2020-2023  润新知