OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
EclipseでのOpenCV Javaの利用

前のチュートリアル: Java開発入門
次のチュートリアル: ClojureによるOpenCV開発入門

原著者Barış Evrim Demiröz
互換性OpenCV >= 3.0
警告
このチュートリアルには古い情報が含まれている可能性がある。

バージョン2.4.4以降、OpenCVはJavaをサポートしている。このチュートリアルでは、Windows上でEclipseを使ってOpenCV Javaを利用するための開発環境のセットアップ方法を説明する。これにより、ガベージコレクションされ、リファクタリングが容易(変数のリネーム、メソッドの抽出など)な現代的言語の恩恵を享受でき、より少ない労力でコードを書き、より少ないミスで済むようになる。それでは始めよう。

Eclipseの設定

まず、ダウンロードページからOpenCVの最新リリースを入手し、C:\OpenCV-2.4.6\のような単純な場所に展開する。ここではバージョン2.4.6を使用しているが、他のバージョンでも手順はほぼ同じである。

次に、OpenCVをEclipseのユーザーライブラリとして定義し、任意のプロジェクトで設定を再利用できるようにする。Eclipseを起動し、メニューから Window –> Preferences を選択する。

Java –> Build Path –> User Libraries の下に移動し、New... をクリックする。

新しいライブラリの名前(例: OpenCV-2.4.6)を入力する。

次に、新しく作成したユーザーライブラリを選択し、Add External JARs... をクリックする。

C:\OpenCV-2.4.6\build\java\ を参照して opencv-246.jar を選択する。jarを追加したら、opencv-246.jar を展開して Native library location を選択し、Edit... を押す。

External Folder... を選択し、フォルダ C:\OpenCV-2.4.6\build\java\x64 を参照して選択する。32ビットシステムの場合は、x64 の代わりに x86 フォルダを選択する必要がある。

ユーザーライブラリの設定は次のようになるはずである:

新しいJavaプロジェクトでの設定のテスト

それでは、新しいJavaプロジェクトの作成を始める。

Java Settings のステップで、Libraries タブの下から Add Library... を選択し、OpenCV-2.4.6 を選択して Finish をクリックする。

Libraries は次のようになるはずである:

新しいJavaプロジェクトを作成して設定したので、いよいよテストする時である。新しいjavaファイルを作成する。便利なように、ここにスターターコードを示す:

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Hello
{
public static void main( String[] args )
{
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 );
System.out.println( "mat = " + mat.dump() );
}
}
int main(int argc, char *argv[])
Definition highgui_qt.cpp:3

コードを実行すると、出力として3x3の単位行列が表示されるはずである。

以上である。新しいプロジェクトを始めるときは、定義したOpenCVユーザーライブラリをプロジェクトに追加するだけでよい。強力で、より苦痛の少ない開発環境を楽しもう :)

OpenCVとMKL依存を用いたJavaコードの実行

MKLライブラリ付きでOpenCVをビルドし、Intel MKLを使用するOpenCV関数を呼び出すJavaコードを実行した場合、(例えばUbuntuで)次のエラーが発生することがある:

‍Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

Linuxでこれを解決する一つの方法は、Intel MKLライブラリを事前にプリロードすることである(ターミナルでコマンドを実行するか、.bashrc ファイルに追加する)。コマンドラインは次のようなものになるはずである(すでに LD_PRELOAD 変数を設定している場合は、先頭に $LD_PRELOAD: を追加する):

‍export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so

次に、この環境変数が設定された(echo $LD_PRELOAD)ターミナルからEclipse IDEを実行すれば、エラーは消えるはずである。