Diary/2016-4-10
OpenCV+Java+カメラ
ノートPCについているカメラを
Windows 10上にインストールしたJava+OpenCVで使ってみる.
- 準備
OpenCVは, http://opencv.org/ から3.1をダウンロード.
%homepath%\Applications\opencv にインストール,というか展開.
- コード
http://cell0907.blogspot.jp/2013/06/creating-windows-and-capturing-webcam.html
https://www.ht.sfc.keio.ac.jp/~takuro/blog/files/2acd4a51f9e2b63d4f9ab4aa3f1ce785-10.html
のサンプルを使わせてもらいました.
ただし,highguiパッケージとかはなくなっているので,
importするパッケージを,
import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; import org.opencv.videoio.VideoCapture; import org.opencv.videoio.Videoio;
に変更.
また,Windowsでは,ウィンドウを閉じたりCtrl-Cで終了しても
タスクが残ってしまったので,
Thread shutdown = new Thread(){ public void run(){ if(capture != null){ capture.release(); } } }; Runtime.getRuntime().addShutdownHook(shutdown);
を追加.
さらに,サンプルでは取得した画像をOpenCVの関数を使って
縮小していたのを
capture.set(Videoio.CV_CAP_PROP_FRAME_WIDTH, sizeX); capture.set(Videoio.CV_CAP_PROP_FRAME_HEIGHT, sizeY);
と,プロパティを使うことで取得時に変更するように.
sizeXとsizeYは,それぞれ320,240をデフォルトにして
引数で指定できるようにしてみた.
CameraTest.java(231)
- コンパイルと実行
コンパイルはコマンドプロンプトで
javac -cp %homepath%\Applications\opencv\build\java\opencv-310.jar;. ^ CameraTest.java
実行は
java -cp %homepath%\Applications\opencv\build\java\opencv-310.jar;. ^ CameraTest
表示できればOK.