#■EclipseでOpenCVを使えるようにする
忘備の意味を込めて、EclipseにJava用のOpenCVをインストールする手順をメモしておきます。
Eclipseのインストールはweb上の様々なところに書いてあるので割愛し、既にEclipseがインストールされている状況を想定しています。環境は以下です。
OS : Windows8.1
Eclipse : Version Mars.2 Release (4.5.2)
OpenCV : Version2.4.12 (2.X系で最新Version 2016/03/05時点)
#① OpenCVの.exeファイルをダウンロード
まずは、OpenCVをここからからダウンロードします。Windowsにインストールするので、OpenCV for Windowsをダウンロードしてください。もちろん、LinuxやMacにインストールする場合は、OpenCV for Linux/Macなど、環境に適したものを選択してください。
2016年3月5日現在で最新のOpenCV 3.1でも良いのですが、OpenCVは2.X系と3.X系でちょこちょこ変わった部分があるので、今回は2.X系で最新のVersionをインストールすることにします。この辺りは、自分の目的に合わせてインストールすれば良いかと。OpenCVが初めての方であれば、3.X系でもOKです。
#② ダウンロードしたOpenCVの.exeを実行してOpenCVをインストール
①でダウンロードしたopencv-2.4.12.exeを実行します。①でダウンロードパスを変更していなければ、この実行ファイルは通常はPC → ダウンロード フォルダにダウンロードされているはずです。
実行すると以下のようにファイルを展開するパスを聞かれますが、デフォルト設定でOKです。Extractを押してインストールを開始します。
インストールが完了すると先ほど指定したパスに"opencv"というフォルダができます。
特にこのままでも問題ありませんが、のちのちOpenCVの3.X系もインストールして2.X系と共存させたいと思っているので、フォルダにバージョン名をつけてリネームします( opencv → opencv_2.4.12 ) 。また、C:/Users/hoge/ の直下にこのフォルダを移動させます。
#③ Eclipseで使えるように設定する
Eclipseで新規プロジェクトを作成して、ビルドの設定にOpenCVのJava用の.jarファイルを追加します。
まずは、Eclipseで File → New → Java Project で新規プロジェクトを作成します。Project Nameは今回は OpenCVTestとしました。
次に、作成したプロジェクトを右クリックして Build Path → Add External Archives を選択し、Java用の.jarファイルを選択します。.jarファイルはbuilldフォルダ → javaフォルダの下にある opencv-2412.jar です。
今回は以下↓のパスになっています。
C:/Users/hoge/opencv_2.4.12/build/java/opencv-2412.jar
.jarファイルが正しく指定できれば、JavaのProject直下の Referenced Libraries に opencv-2412.jar が入っています。
#④ Pathの設定
OpenCVのdllファイルを使用するため、WindowsのPathの設定をします。
Windowsでシステムの詳細設定 → 環境変数を選択。そこから、システム環境変数の Pathを選択して、編集をクリックします。
すると、システム変数の編集ウィンドウが開くので、変数値の一番最後にセミコロン(;)で区切ってdllファイルがあるパスを追加します。今回は64bitなのでx64直下にある opencv_java2412.dll を使用するので、この.dllファイルがある以下↓のパスです。
C:/Users/hoge/opencv_2.4.12/build/java/x64
以上① ~ ④でインストールおよび設定は完了です。
#⑤ 動作確認
問題なくOpenCVが使えるようになっているか、簡単なテストコードで確認してみます。OpenCVでPC内にある画像を読み込んで、グレー画像に変換するコードです。
作成したEclipseのProject (OpenCVTest)の srcを右クリック → New → Class でテスト用のクラスを作成します。
PackageとクラスのNameは適当に決めてください。今回はPackageは test、クラスのNameはImgConvに設定して、自動で生成されるImgConv.javaを以下のように編集しました。
package test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;
public class ImgConv {
static{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
String path_in = "C:/Users/hoge/Lenna.bmp";
String path_out = "C:/Users/hoge/Lenna_gray.bmp";
Mat mat_src = new Mat();
Mat mat_dst = new Mat();
mat_src = Highgui.imread(path_in); // 入力画像の読み込み
Imgproc.cvtColor(mat_src, mat_dst, Imgproc.COLOR_BGR2GRAY); // カラー画像をグレー画像に変換
Highgui.imwrite(path_out, mat_dst); // 出力画像を保存
}
}
以下↓のコード。これは、IBMのサイトを参考にすると分かりやすいです。
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
実行すると、入力したカラー画像がグレー画像に変換され、問題なくEclipseでOpenCVを使えていることが確認できました。