MacでOpenCV3.2.0を入れた時、かなり苦労しましたので、メモしておきます。
Windowsではダウンロードしてすぐ使えるらしいですが、Macだと結構面倒でした。
##環境
・OS X El Capitan 10.11.6
・Eclipse Neon
・OpenCV 3.2.0
###1. OpenCV3.2.0をインストール
Homebrewがインストールされていないなら、インストールしておきましょう。
以下のコマンドを実行
brew tap homebrew/science
brew install opencv3 --with-java
cmakeにリンクされないなどのエラーが出ましたら、言われた通りにすれば大丈夫です。
インストールができれば、/usr/local/Cellar/opencv3/3.2.0/share/OpenCV/javaフォルダに以下の2つのファイルがあります。
+opencv-320.jar
+libopencv_java320.dylib
これでOpenCVのインストールが完了です。次にEclipse側の設定をします。
###2. Eclipseの設定
意外とEclipseの設定に苦労しました。まず新しいプロジェクトを作っておきます。
#####+「Java Build Path」画面で「Libraries」タブを開く
File -> Properties -> Java Build Path -> Librariesタブ
#####+ライブラリを追加
「Add Library」 -> 「User Library」 -> 「User Libraries」ボタン
「New」 -> 「opencv-3.2.0」を入力 -> 「OK」
#####+Jarファイルを指定
「Add External JARs」を押下し、「opencv-320.jar」を指定
Jarを指定したら実行できるかと思ったらダメでした。
いろいろ調べたら、ネイティブライブラリも指定しないといけないらしいです。
#####+ネイティブライブラリを指定
「Native library location」を選択し、「Edit」をクリック
パスは/usr/local/Cellar/opencv3/3.2.0/share/OpenCV/javaを指定
(3.1まではlibopencv_java◯◯◯.dylibまで指定したらしいですが、3.2では〜/javaまで指定しないと動かないです)
##3. 動作確認
ソースコードを書いて実行できたらOK。
####ソースコード:
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.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("m = " + m.dump());
}
}
####実行結果
m = [ 1, 0, 0;
0, 1, 0;
0, 0, 1]