トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

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.