LoginSignup
0
0

More than 1 year has passed since last update.

Java+GradleでOpenCV(JavaCV)を使う

Posted at

前提

Gradle を使って Java のアプリケーションを作成します。
Gradle のインストール方法、基本的な使い方などについては記載しません。

筆者の実行環境は次の通りです。

$ gradle --version

------------------------------------------------------------
Gradle 7.4.2
------------------------------------------------------------

Build time:   2022-03-31 15:25:29 UTC
Revision:     540473b8118064efcc264694cbcaa4b677f61041

Kotlin:       1.5.31
Groovy:       3.0.9
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.11 (JetBrains s.r.o 11.0.11+9-b60-7590822)
OS:           Windows 10 10.0 amd64

手順

コマンドプロンプトから以下のコマンドを実行します。

# 作業用フォルダを作成し、カレントディレクトリを変更する。
$ mkdir hogehoge\work\TestJavaCv
$ cd hogehoge\work\TestJavaCv

# Java アプリケーションを初期化する。
# いくつか質問されるが、全てデフォルト設定(単純に Enter を押下)で問題なし。
$ gradle init --type java-application

生成された"TestJavaCv\app\build.gradle"に下記の変更を加え、OpenCV(JavaCV)の依存関係を追加します。
JavaCV と対応する OpenCV のバージョンの確認は次のファイルから確認できます。
URL: https://github.com/bytedeco/javacv/blob/<JavaCV のバージョン(例:1.5.6)>/pom.xml

dependencies {
    // Use JUnit test framework.
    testImplementation 'junit:junit:4.13.2'

    // This dependency is used by the application.
    implementation 'com.google.guava:guava:30.1.1-jre'

++    // OpenCV(JavaCV)の依存関係を追加。
++    implementation group: 'org.bytedeco', name: 'opencv-platform', version: '4.5.3-1.5.6'
}

試しに OpenCV(JavaCV)を使ってみます。
生成された"TestJavaCv\app\src\main\java\TestJavaCv\App.java"を以下の内容に変更します。(コピペしてください)

package TestJavaCv;

import org.bytedeco.opencv.global.opencv_highgui;
import org.bytedeco.opencv.global.opencv_imgproc;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.Point;
import org.bytedeco.opencv.opencv_core.Scalar;
import org.opencv.core.CvType;

public class App {
    public String getGreeting() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        System.out.println(new App().getGreeting());


        // 480x270 の真っ白の画像を作成
        Mat mat = new Mat(270, 480, CvType.CV_8UC3, new Scalar(255, 255, 255, 255));

        // 中央に赤色の円を描画
        opencv_imgproc.circle(mat, new Point(mat.cols()/2, mat.rows()/2), mat.rows()/4, new Scalar(0,0,255,255), -1, 0, 0);

        // 画像の表示
        opencv_highgui.imshow("test", mat);
        opencv_highgui.waitKey(0);
    }
}

次のコマンドを実行することで、ビルド・実行が可能です。

$ gradle build
$ gradle run

先ほど記載したソースコードを実行すると、日本国旗っぽい画像(下図)が表示され、OpenCV(JavaCV)を利用できていることが確認できます。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0