Android OpenCV(零):OpenCV Android SDK

5,110 阅读2分钟

OpenCV

OpenCV,全称Open Source Computer VisionLibrary,是基于C/C++编写的,是BSD开源许可的计算机视觉开发框架,其开源协议允许在学术研究与商业应用开发中免费使用它。OpenCV支持Windows、Linux、Mac OS、iOS与Android操作系统上的应用开发。

OpenCV Android SDK

OpenCV Android SDK 是OpenCV针对Android平台提供的开发工具包。Android应用开发一般采用Java或者Kotlin语言进行,而OpenCV主要模块采用C、C++语言编制,因此,我们需要通过JNI技术,实现JAVA或者Kotlin调用OpenCV算法模块的目的。

下载

SDK概述

SDK目录结构如下:

OpenCV-android-sdk
|_ samples
|_ sdk
|    |_ etc
|    |_ java
|    |_ libcxx_helper
|    |_ native
|          |_ 3rdparty
|          |_ jni
|          |_ libs
|               |_ arm64-v8a
|               |_ armeabi-v7a
|               |_ x86
|               |_ x86_64
|          |_ staticlibs
|               |_ arm64-v8a
|               |_ armeabi-v7a
|               |_ x86
|               |_ x86_64
|
|_ LICENSE
|_ README.android
目录 文件
samples OpenCV运行案例
sdk OpenCV API以及依赖库
sdk/etc Haar和LBP级联分类器
sdk/java OpenCV Java API
sdk/libcxx_helper bring libc++_shared.so into packages
sdk/native OpenCV 静态库、动态库以及JNI文件

英文详细介绍(https://opencv.org/android/)。其实官方的这些介绍并不详细,很多资料随着版本的迭代已过时,意义不大,唯一阅读性高且具有指导意义的应该就是库内的代码与注释了。

开发环境

  • Android Studio 3.5.3 & Android SDK

  • Android NDK 20.1.5948944

  • CMake 3.10.2

  • OpenCV Android SDK 4.2.0

Hello OpenCV Android Sample

  • Open Project
  • 选择OpenCV-android-sdk目录下的samples目录
  • 待编译结束后运行face-detection
Face Detection运行结果
Face Detection运行结果

Hello OpenCV Android SDK

  • New Project
  • Import Module...
  • 选择OpenCV-android-sdk目录下的sdk目录,修改或者不修改module的名称
  • 添加app程序对sdk module的依赖
  • 期间可能会遇到一些问题,可能是NDK版本问题,可能是API LEVEL问题,也可能是build tools的问题,对应的稍作处理即可。

示例工程

github.com/onlyloveyd/…

本文使用 mdnice 排版