我在 android 上使用 OpenCV 来操作位图,当我想使用原始而不是缩放图像(例如 1500 x 2048 分辨率)进行操作时出现内存不足错误。当我缩放图像时,一切正常,但我需要对原始图像进行操作,因为图像质量对我来说非常重要。当我想使用该代码将 Mat 转换为位图时会发生这种情况:
private Bitmap convertMatToBitmap(Mat image) {
Bitmap bitmap = null;
try {
bitmap = Bitmap.createBitmap(image.width(), image.height(), Config.ARGB_8888);
org.opencv.android.Utils.matToBitmap(image, bitmap);
} catch (OutOfMemoryError e) {
Log.e(TAG, "Out of memory exception in convertMatToBitmap: " + e.getMessage());
} catch(Exception e) {
Log.e(TAG, "convertMatToBitmap throws an exception: " + e.getMessage());
}
return bitmap;
}
有人知道我该怎么做吗?