English version is here.
OpenCVは便利なライブラリですが、検索して見つかる導入方法は面倒であったりします。
また、ソースコードとバイナリの分離の観点からも、ひとつあたり数メガバイトのlibopencv_java3.so
を複数コミットするということは回避したいところです。
本ライブラリは、OpenCVをGradleでお馴染みのdependencies
ブロックに記述するだけで利用できるようになるライブラリです。
OpenCVのDownloadsページより入手できるAndroid版SDKとは以下の点が異なります
- 本ライブラリはdependenciesに記述するだけで使用できます
- 本ライブラリでは、オリジナルSDKに含まれている一部のマイナーなABIは省かれています
- 具体的には: mips, mips64, x86, x86_64 が含まれません
- arm64-v8a, armeabi, armeabi-v7a は含まれます
dependencies {
implementation "jp.seesaa.android:opencv:3.4.2.0"
}
NOTE: Sync Project with Gradle File
することを忘れずに。
public class MyApplication extends Application {
static {
OpenCVLoader.initDebug();
}
}
NOTE: OpenCVLoader
の代わりにSystem.loadLibrary("opencv_java3");
と記述しても良い。
OpenCVのバージョンが上がったなどの理由で本リポジトリを修正する必要がある場合、以下の点に留意してください。
Gitリポジトリはテキストの差分管理には有用ですが、バイナリは不向きです。
そのため、サイズの大きなバイナリファイル(本リポジトリにおいては*.so
ファイル)はGit Large File Storageで管理しています。
とは言えあまり特別なことはなく、以下コマンドなどでgit-lfsをインストールしてから git clone すれば良いだけです。
$ brew install git-lfs
また、git pull
などをするだけだと、ファイルのポインターファイルだけが取得された状態になるので、git lfs pull
も併せて行うと良いでしょう。
versionCode及びversionNameは、Projectレベルのbuild.gradle(./build.gradle
)にて管理されています。
(build.gradleにも書いてありますが)versionCode, versionNameには記入ルールを設けてあります。
versionNameは、OpenCVのバージョン名の末尾に、該当バージョンでの本ライブラリのリリース回数を付与した、4区切りのバージョンで管理します。
(例:OpenCVが2.4.11で、本ライブラリが2.4.11における初回リリースであるなら、2.4.11.0
とします。3度アップデートを行った場合は、2.4.11.3
とします。
OpenCV3.0.0にバージョンアップしたなら、リリース回数部分はリセットされ、3.0.0.0
とします。)
versionCodeは、上記ルールに則ったversionNameより生成します。
まず、versionNameの4区切りをそれぞれ、[major].[minor].[hotfix].[revision]
とします。
- [revision]部は、0埋め2桁とします (例:01)
- [hotfix]部は、0埋め2桁とします (例:11)
- [minor]部は、0埋め2桁とします (例:04)
- [major]部は、0埋めをしない桁数制限なし(高々3桁程度まで)とします (例:2)
その後、これを[major]部から[minor],[hotfix],[revision]部と順番に結合します。上記例で考えると、「2041101」となります。
本ライブラリは三条項BSDライセンスの下で配布されているOpenCVのDownloadsページより入手したSDKソースコード・バイナリを調整の上、AARライブラリ化しております。 三条項BSDライセンスに則り、OpenCVのライセンス条項をアプリ内に明示することでお使いいただけます。
社内用に作成したものなので特に何も考えてないものの、ロジック類の特別な追記は行っておりませんのでライセンスにおける弊社の表記は不要です。