【问题标题】:How to use OpenCV C++ applications on Android (using NDK) & ARM processor如何在 Android(使用 NDK)和 ARM 处理器上使用 OpenCV C++ 应用程序
【发布时间】:2019-09-07 10:46:06
【问题描述】:

我想将我现有的 OpenCV 应用程序更改为 ARM(处理器)架构,这些应用程序是用 cpp 为桌面版 (X_86) 处理器编写的。在初始阶段,我没有兴趣将我的 cpp 应用程序更改为 java 并在 Android Studio IDE 上编译它。在开发 Android 应用程序之前,我想对 ARM 处理器进行基准测试。它是否能够运行我的 OpenCV 应用程序,处理视频帧需要多少时间等等。所以保留我的 cpp 应用程序,我想为 ARM Arch 交叉编译它。并在 Android 设备上运行它(没有 GUI)。 如何做到这一点?

【问题讨论】:

    标签: android c++ opencv build android-ndk


    【解决方案1】:

    我关注了许多链接和博客来为 ARM 处理器编译和构建 opencv cpp 应用程序。一个很好的链接是

    https://www.learnopencv.com/install-opencv-on-android-tiny-and-optimized/

    所有学分归上述博客作者所有。

    这个链接非常适合初学者,在第 8 步之前它写得很清楚,我可以按照它进行操作,但从第 9 步开始,它没有正确写明在哪里保存演示应用程序、链接、包含库。它曾经给出一个错误 *.hpp not found。我尝试了所有方法但无法解决。然后我想,让我先构建示例应用程序,附带 opencv sdk。我的做法如下图。

    使用的构建设置

    一个。 Ubuntu 14.04 并安装了中提到的所有软件包 https://www.learnopencv.com/install-opencv3-on-ubuntu/链接。

    b.下载并安装 NDK r14b

    c。下载并安装 OpenCV 3.4.1

    d。目标 armeabi-v7a(基于 ARM)和 Android API 23

    第一次设置需要步骤 1-4

    第 1 步:下载和设置 NDK 解压缩并转到 NDK 文件夹

    $ ./build/tools/make_standalone_toolchain.py \ --拱臂\ --api 23\ --install-dir /tmp/my-android-toolchain

    第 2 步:设置 ANDROID_NDK 路径

    $ export ANDROID_STANDALONE_TOOLCHAIN=/tmp/my-android-toolchain/

    第 3 步下载并安装 OpenCV 3.4.1

    $ cd opencv/

    $ mkdir 构建

    $ cd 构建

    $ cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/android/android.toolchain.cmake -DANDROID_STL=gnustl_shared -DBUILD_EXAMPLES=ON -DANDROID_NATIVE_API_LEVEL=23 ..

    -DBUILD_EXAMPLES=ON 对于构建示例很重要)。

    $ make -j4

    第 4 步 Neon 和 VFPV3 优化(可选)

    对于基于 ARM 的设备,我通常使用以下方式启用优化: 氖 VFPV3 查看platforms/android/android.toolchain.cmake的序言以获得各种配置选项。

    第 5 步构建代码 转到工作目录

    $ cd path-to-opencv

    将新创建的 cpp 文件放在 opencv/samples/cpp/ 中

    $ cd build/

    $ cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/android/android.toolchain.cmake -DANDROID_STL=gnustl_shared -DBUILD_EXAMPLES=ON -DANDROID_NATIVE_API_LEVEL=23 ..

    $ make -j4

    第 6 步在 android 上复制并运行

    $ cd path-to-opencv

    $ adb push build/bin/example_cpp_your_program /system/xbin/

    $ adb push build/libs/armeabi-v7a/libgnustl_shared.so /system/lib/ ****(如果需要)****

    (对我来说,在执行 cpp 二进制文件时,它说找不到链接库)

    $ adb shell

    $ cd /system/xbin/

    $ ./example_cpp_your_program

    此方法在我的 Android 设备上完美运行,无需使用 Android Studio IDE。

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 2015-01-24
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多