web-dev-qa-db-ja.com

openCVのjarはどこで入手できますか?

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

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

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

13
theAndDev

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

EclipseでopenCVを利用できるようにする確実な方法Javaプロジェクトは、ソースから独自のjarファイルをコンパイルして、ここで説明されているように利用できるようにすることです https://udallascs.wordpress。 com/2014/03/30/adding-opencv-and-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ディレクトリの下のbeの下にあります。

./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

次に、「ネイティブライブラリの場所」をダブルクリックし、ビルドした場所にbuild/libを入力します。私の場合は/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の世界への窓に過ぎないからです。したがって、OpenCVのメソッドをJavaアプリケーションで使用できるようにするには、 Rube Goldberg マシンを作成する必要があります。

15
TheKojuEffect