OpenCVで処理したいカメラから画像をキャプチャしています。ただし、古いデバイスでは、これは最初のハードルで失敗しています。
public void onPictureTaken(byte[] jpeg, Camera c) {
mImageBitmap = BitmapFactory.decodeByteArray(jpeg, 0, jpeg.length);
org.opencv.android.Utils.bitmapToMat(mImageBitmap, Utils.cameraMat);
...
}
プロデュース:
04-22 14:23:41.708: I/System.out(7289): Available memory (bytes): 5646168
04-22 14:23:41.718: I/dalvikvm-heap(7289): Forcing collection of SoftReferences for 51121168-byte allocation
04-22 14:23:41.758: E/dalvikvm-heap(7289): Out of memory on a 51121168-byte allocation.
これについて読んでみると、アドバイスは小さいバージョンの画像で機能するようですが、デバイスに残っている使用可能なメモリの量を考慮して、どのサイズにサイズ変更するかを大まかに決めるにはどうすればよいですか?