2013年1月22日火曜日

OpenCV for Androidのtutorial 2を試してみた

OpenCVに慣れてきたのでPCだけでなく、Android版を試してみた。
今回は、tutorialの2で、 eclipseにsampleをimportするだけで良い。


tutorialの2では、tutorial 1をベースにしており、入力された画像をモードに応じて加工している


・カメラ開始イベント処理 onCameraViewStarted で、白黒画像表示用と、エッジ検出格納用のMatを初期化

・カメラ終了イベント処理 onCameraViewStoppedで、確保したMatをリリース

・メニューボタンイベント処理 onOptionsItemSelected では、3つのモード

1 カラー画像表示
2 白黒表示
3 Cannyエッジ

に応じてカメラ画像からの取り込み方式を設定している。

取り込み方式は、
mOpenCvCameraView.SetCaptureFormat(Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA);
mOpenCvCameraView.SetCaptureFormat(Highgui.CV_CAP_ANDROID_GREY_FRAME);
で指定できる。

・カメラ入力イベント処理 public Mat onCameraFrame では、モードにより入力画像に対し、異なる処理を行う。

1 オリジナルをコピーし、文字を描画
2 白黒画像をカラー画像フォーマットに変換
3 エッジ検出をおこない、結果をカラー画像フォーマットに変換



パフォーマンスを気にしなければ、これだけでもかなりのことができそうだ


追加 4/15
tutorial 2では、fpsを表示しないが、res/layoutのtutorial2_surface_view.xmlの、
LinearLayoutの属性に、xmlns:opencv="http://schemas.android.com/apk/res-auto" と JavaCameraViewの属性に、opencv:show_fps="true"を追加すれば表示されるようになる。

以上

0 件のコメント:

コメントを投稿