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 件のコメント:
コメントを投稿