kotlinでOpenCVが使える環境を作る

前回、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する

cmake-guiの画面

Configureするといろいろエラーが発生するので、ドキュメントに従って値を埋めていく。
再度、configureするとエラーが消えたので、Generateする。

ちなみにantの実行ファイルがどこにあるかはwhich antなどで調べられる。
SDKMANでインストールした場合は、/home/[your-name]/.sdkman/candidates以下に大体ある。

cmake-guiでconfigureした後の画面。エラーの箇所が赤くなっている。

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をビルドしなきゃ駄目か・・・?

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

コメントする