15

Java コードにインポートできるように、openCV コア拡張機能の Java jar ライブラリはどこにありますか?

すべてを適切にセットアップする方法を教えてくれた場所が 1 つも見つかりません。私は使用Ubuntu 12.04しており、openCVがインストールされています。Eclipse IDE で使用したいのですが、openCV 関数を使用できるように、Eclipse には jar ファイルが必要です。を使用している次のリンクを見ましたimport org.opencv.core.Core;

これらの .jar ファイルを取得するにはどうすればよいですか?

4

1 に答える 1

19

openCVLinux用の jar は、このリンクのようにインターネットで検索できます。ただし、openCV が動作するために必要なネイティブ ライブラリがない限り、動作しません。

Eclipse Java プロジェクトで openCV を使用できるようにする確実な方法は、https://udallascs.wordpress.com/2014/03/30/adding-opencv-and で説明されているように、ソースから独自の jar ファイルをコンパイルして使用できるようにすることです 。 -configuring-to-work-with-eclipse-and-java/

Linux の手順の概要は次のとおりです。ターミナルを開き、次のコマンドを実行します。

cd ~
mkdir Vision
cd Vision
git clone https://github.com/opencv/opencv.git
cd opencv
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=OFF ..
make -j8

すべてが成功した場合、jar は bin ディレクトリの下にあります。

./bin/opencv-300.jar

その opencv-300.jar をプロジェクトの lib ディレクトリに移動し、それを外部 jar として含めます。これを使用するベアボーン プログラムを次に示します。

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

public class Main {

    public static void main(String[] args) {
        System.out.println("Welcome to OpenCV " + Core.VERSION);
        System.out.println(System.getProperty("java.library.path"));
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat m  = Mat.eye(3, 3, CvType.CV_8UC1);
        System.out.println("m = " + m.dump());
    }
}

Eclipse 内で、jar ファイルを使用するには、以前に作成したネイティブ ライブラリが必要です。したがって、Eclipseでは、次の場所に移動します。

Project->Properties->Java Build Path->Libraries tab-> Add external jars -> opencv-300.jar

次に、「ネイティブライブラリの場所」をダブルクリックし、ビルドしたビルド/ライブラリに入力します。私の場合は次のとおりです。/home/el/Vision/opencv/build/lib

Java プログラムを実行すると、プログラムは次のように出力します。

Welcome to OpenCV 3.0.0-dev
/home/el/Vision/opencv/build/lib
m = [1,   0,   0;
     0,   1,   0;
     0,   0,   1]

このプログラムを他の人に渡して実行できるようにする場合は、システムで openCV バージョン 3.0.0 も利用できるようにする必要があります。そうしないと、Java プログラムがライブラリを見つけられず、すぐに終了します。

なぜこれはとても難しいのですか、なぜこれは単純な瓶ではないのですか?

openCV は C で書かれており、jar ファイルはその C の世界への窓に過ぎないからです。そのため、Rube Goldbergマシンを作成して、OpenCV のメソッドを Java アプリケーションで使用できるようにする必要があります。

于 2013-09-18T13:07:30.287 に答える