コマンドラインでJavaを実行する原始人
大学の卒研でOpenCVを使わざるをえないので導入した
その道しるべ
今検索してもほとんどがPythonやC++での話でjavaの話が少ないので苦労した。
参考サイト
基本的に以下のサイトに従順してやりました。基本的にこっちのほうが丁寧です。ただ、今の最新のVer(4.4.0)だとテストコードがうまく実行できないのでそこは書きます。
JavaでOpenCVを使う | JProgramer
イソストール
ダウンロードした.exeファイルを実行、Cドライブに展開するのが良いとのことで私はOpenCVなるフォルダを作成しそこに展開。
パスを通す
参考サイトではユーザ変数ですが私はシステム変数に追加しました。
「Path」を選択し、[編集]をクリック。一番下に
C:\OpenCV\opencv\build\java\x86
を追加、OpenCVをjavaで使うだけならこれだけの追加でいい、Pythonで使うとか、VisualStudioで利用するとかならこれだけじゃダメです。
私は一応VS2017が入っているんでそれ用にもパスを通してます。
最後の部分はjavaが32bitなら[x86]、64bitなら[x64]
私はマシンが64bitなので、64bitだと思ってテストコード(後述)を実行したら「俺は32bitだ!64bitのプログラムなんてムリ!」みたいなエラーがでたんで、必ずしもマシンとjavaのbitが同じとは限らないみたいです。
テストコード
参考サイトのテストコードはVer.4.4.0ではエラーが出ます。
具体的には画像の出力するクラスがhighgui
ではなく、imgcodecs
に移っています。
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
public class Test{
public static void main(String[] args){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat redImg=new Mat(100,200,CvType.CV_8UC3,new Scalar(0,0,255));
Imgcodecs.imwrite("test.jpg",redImg);
}
}
コンパイルコマンドは以下↓
javac -classpath “C:\保存したフォルダ\opencv\build\java\opencv-バージョン.jar” Test.java
これを
java -cp .;C:\保存したフォルダ\opencv\build\java\opencv-バージョン.jar Test
で実行すると同じフォルダに真っ赤なJPG画像が出力(保存)されました。
クラスパスを設定すると
javac Test.java
java Test
で実行できます。詳しくは参考サイトを見てくだちい。