2010年6月17日木曜日

カメラのプレビューでFaceDetector

カメラのプレビュー画像で顔認識をやってみました。はまった点は

  • FaceDetector#findFaces()に渡すBitmapはARGB_8888じゃだめ

ってとこです。
RGB_565を使いました。

もっと言うと、モノクロ画像でも顔認識ができるっぽいので、プレビュー画像(YUV420)をRGB変換するのではなく、Y値だけ取り出した画像をfindFaces()に食わせました。

private Bitmap yuv2monochrome(byte data[], int width, int height, int[] buffer) {
    int y;

    for (int i = 0; i < width * height; i++) {
        y = data[i];
        buffer[i] = 0xff000000 | y << 16 | y << 8 | y;
    }

    return Bitmap.createBitmap(buffer, width, height, Config.RGB_565);
}

まぁ、FaceDetectorの処理にとても時間がかかるので、リアルタイムで顔認識はできないんですけど。
んー、微妙...

0 件のコメント:

コメントを投稿