1

我在 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;
}

有人知道我该怎么做吗?

4

0 回答 0