はじめに
コマンドでの実行が苦労したときのメモ書きしたものになります。
実行環境: Windows10、Java15、OpenCV-4.5.0
OpenCVのインストール
-
公式ホームページから最新バージョン(4.5.0)を入れる。(Windowsボタンを押すとインストールが始まります。
ダウンロード先のファイルの指定の所では、c:\にしておくと後で探しやすいと思います。 -
解凍したフォルダに移動します
-
"*****\opencv\build\java"の中opencv-450.jarとx64という名前のフォルダの中にopencv_java450.dllがあることを確認してください。
サンプルコードとコンパイルの仕方
Sample.javaを作成します(コードは以下をコピペしてください)。
このプログラムと同じディレクトリに"lib"という名前のフォルダを作成し、
opencv-450.jarとopencv_java450.dllのコピーを入れます。
Sample.java
import java.io.File;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Sample {
public static void main(String[] args) {
// OpenCVが使えるためのおまじない
// 環境によってcan't load libraryのエラーが出る可能性がある
// <解決策>
// lib_pathに"opencv_java450.dll"を入れたフォルダの
// 絶対パスを調べて、lib_folder.getAbsolutePath()の代わりに書きます
// 例: String lib_path = "C:\\Users\\username\\workspace\\lib";
File lib_folder = new File("lib");
String lib_path = lib_folder.getAbsolutePath();
System.load(lib_path + "\\" + Core.NATIVE_LIBRARY_NAME + ".dll");
// OpenCVの画像の型は"Mat"になります。
// Matは行列の形をしています。
// ここではOpenCVが実際に動くか確かめるために
// 3×3の対角行列を試しに作ってみます。
Mat mat = Mat.eye(3,3,CvType.CV_8UC1);
// 作った行列の中身を確認します。
System.out.println("mat = " + mat.dump());
}
}
それでは、コンパイルをしてみましょう。
javac -classpath .;lib\opencv-450.jar Sample.java
実行します。
java -classpath .;lib\opencv-450.jar Sample
出力結果が以下のようになっていればopenCVが使えていることが確認できます。
mat = [ 1, 0, 0;
0, 1, 0;
0, 0, 1]
終わりに
今度Macでも確認する。-Djava.library.pathでdllのパス指定するのは面倒だったのでこうした。元も子もないけど、IDE使うのが楽そう。