androidでOpenCV 2.3.1を使ってみる

Q. なんでいまさら2.3.1なんですか? もう2.4.7出てますよ??
A. 1年ぐらい前に作ったソースが出てきたから

1. android用のファイルを落とす
こちらでまだ入手出来ました
http://sourceforge.jp/projects/sfnet_opencvlibrary/downloads/opencv-android/2.3.1/OpenCV-2.3.1-android-bin.tar.bz2/

2. 適当な場所に解凍する
中身はこんな感じのはずです
OpenCV-2.3.1
 +androidのeclipseプロジェクトっぽいのがいろいろ
samples
 +サンプルっぽいのがいろいろ


3. eclipseでOpenCV-2.3.1の中身をインポート
ごく普通に「android - Existing Android Code into Workspace」でOK。
ちなみに1年前の代物らしく、プロジェクトがAPI4でビルドされています。
あと右クリック→プロパティ→Androidで、下のライブラリにチェックが入っていることを確認してください。

4. OpenCVを使いたいプロジェクトと連携
プロジェクトを右クリック→プロパティ→Androidで、下のライブラリのところで「追加」を押して、先ほどインポートしたOpenCVライブラリのプロジェクトを追加しましょう。

これで準備管完了です。
もう1年前の代物なので、ざざっと一部のフィルタの使い方だけ書きます。
というか、それしか試してなかったので。

5. Bitmap画像をMat形式に変換する。
いちおう、BitmapはARGB_8888形式でやったほうがいいかもしれません。

Mat srcMat = Utils.bitmapToMat(srcBmp);


6-1. 画像をグレースケール化する
Imgproc.cvtColor(srcMat, srcMat, Imgproc.COLOR_RGB2GRAY);
Imgproc.cvtColor(srcMat, srcMat ,Imgproc.COLOR_GRAY2BGRA,4);

ちなみに1つ目の引数が入力元、2つ目の引数が出力元です。

6-2. 画像をメディアンフィルタでぼかす
Imgproc.medianBlur(srcMat, srcMat, BLUR_VALUE);

こちらも引数の内容は同じです。

7. 変換したMatをBitmapに変換する
Utils.matToBitmap(srcMat, dstBmp);


以上です。
いまとなっては端末自体のスペックが上昇しているので、あまり恩恵を感じないかもしれませんが、少なくとも1年前の感覚でいえば、かなり高速で画像加工してくれる素敵なライブラリでした(実際に諸事情でアプリ化には至りませんでしたが)。

そのうち最新版でも試してみます。
[PR]