我正在从相机捕获图像,我想通过 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.
阅读有关此内容的建议似乎是使用较小版本的图像,但是在给定设备上剩余的可用内存量的情况下,我如何大致计算出要调整大小的尺寸?