目次
前回、kotlinの開発環境を作ったので今回はこれにOpenCVを導入します。
OpenCVはコンピュータビジョン(画像処理や画像認識)に関するライブラリです。
OpenCVのライブラリをインストールする
ここの手順に従ってインストールする。
どうやらc++のソースからビルドしなくては駄目らしい。(build.gradleに1行書いておわり。とはいかんかー)
CMakeとAntが必要との事。
以前にもJavaのOpenCVをインストールした記憶があるがこんなに面倒だったかなー??
CMakeって何?
クロスプラットフォームビルドシステムジェネレータとの事。
コンパイルするための設定をよしなにやってくれるイメージか。
CMakeをインストールする
ここからダウンロードしてここの手順に従ってインストールする。
Apache Antをインストールする
SDKMANで簡単にインストールできる
sdk install ant
そういえばJDKもインストールした記憶がないな・・・?
JDKをインストールする。
SDKMANで簡単にインストールできる。
sdk install java
OpenCVをダウンロードする
こちらからOpenCVのソースコードをダウンロードする。
3系と4系がある。
よくわからないのでとりあえず4系を選んだ。
OpenCVをビルドする。
cmake/binのcmake-guiを起動し、ダウンロードしたOpenCVのフォルダを選択してConfigureする

Configureするといろいろエラーが発生するので、ドキュメントに従って値を埋めていく。
再度、configureするとエラーが消えたので、Generateする。
ちなみにantの実行ファイルがどこにあるかはwhich antなどで調べられる。
SDKMANでインストールした場合は、/home/[your-name]/.sdkman/candidates以下に大体ある。

buildフォルダでmakeを実行する

必要なファイルが生成されている事を確認。

build.gradle.ktsに依存関係を追加する。
(ここでディスクのパスを書いてしまうと別の環境で使えなくなるから避けたいんだけどなぁ。知識不足なので一旦これで)
repositories {
flatDir {
dirs("/your-directory/opencv-4.3.0/build/bin")
}
}
dependencies {
implementation(mapOf("name" to "opencv-430"))
}
最後に動作確認コードを実行して終わり。
System.loadLibrary(Core.NATIVE_LIBRARY_NAME)
val mat: Mat = Mat.eye(3, 3, CvType.CV_8UC1)
System.out.println("mat = " + mat.dump())
ここまでで、kotlinでOpenCVやる環境ができた。
OpenCVのビルドがなかなか大変だなぁ
最終的にはツールとして配布したいんだけど環境毎にOpenCVをビルドしなきゃ駄目か・・・?
Webエンジニアをやっています
UX/UIデザインからプログラミング、DB設計、SEO、インフラ構築など幅広く対応してます
PHP/PHPUnit/Laravel/Vue/Nuxt/Docker/Terraform
ご連絡はTwitterのDMまで。

「kotlinでOpenCVが使える環境を作る」への1件のフィードバック