OpenCv-CookBookの次のテーマは 『画像サイズを変更する』 だが その前に 乱暴にも 画面をはみ出す Window7のサンプル画像 コアラ.jpg(1024*768)を リソースのdrawableフォルダに貼り付け表示してみた。(名前はkoala.jpgとrename)
当然 画面をはみ出すためエラーになるかと思ったが 期待を裏切って(笑) 表示された。
【ソース抜粋】
Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.koala);
Bitmap src2 = src.copy(Bitmap.Config.ARGB_8888, true);
Mat mat = android.BitmapToMat(src2);
Bitmap dsc= Bitmap.createBitmap(mat.width(), mat.height(), Bitmap.Config.ARGB_8888);
android.MatToBitmap(mat, dsc);
このとき src mat dsc 全て 1536*1152 になっていた。 (元サイズの1.5倍)
ちなみに SDCARDイメージの DCIM/100ANDROに格納し
String path=Environment.getExternalStorageDirectory()+”/DCIM/100ANDRO/koala.jpg”;
Bitmap src = BitmapFactory.decodeFile(path);
とした場合は 元サイズ 1024*768のまま だった。(理由はわかりません・・)
ただし エミュレータで縦横回転すると メモリ不足でエラーになる。(実機003SHでは回転もOK)
図に乗って サイズ 3552*2664のJPGを読み込もうとすると 当然エラー(実機003SHでもNG)メモリ使いすぎ!!!
次は 無謀に大きなままJpegを読み込むことなく、元画像を読み込む段階で小さくして読み込む処理を実装しよう。
お断り この処理では 特にMatを経由させる必要は、ありません。(笑い)