繁体   English   中英

如何在 Android(使用 NDK)和 ARM 处理器上使用 OpenCV C++ 应用程序

[英]How to use OpenCV C++ applications on Android (using NDK) & ARM processor

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

我已经按照许多链接和博客为 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/链接中提到的所有软件包。

下载并安装 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 \\ --arch arm \\ --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 的设备,我通常使用以下方法启用优化:NEON VFPV3 查看平台/android/android.toolchain.cmake 的序言以了解各种配置选项。

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

$ cd path-to-opencv

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

$ cd 构建/

$ 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 二进制文件时,它说没有找到链接的库)

$亚行外壳

$ cd /system/xbin/

$ ./example_cpp_your_program

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM