活动在图像处理过程中自动关闭(android)

活动在图像处理过程中自动关闭(android),android,opencv,Android,Opencv,我正在开发一个应用程序,包括图像处理(灰度、Bw过滤、对象检测、颜色调整、级别调整) 大家都知道,新手机拍摄的图像质量高、尺寸大,由于内存限制,图像处理比较困难,outofmemoryException经常发生,所以我将图像处理从Java层完全转移到JNI,如下所示: 按源文件路径加载到jni中的Mat文件 处理 结果存储在sd卡中 结果图像作为预览加载到inSampledSize位图中 此方法在图像处理中不会发生OutOfMemoryException。 但有时,当图像尺寸非常大时,活动在图像

我正在开发一个应用程序,包括图像处理(灰度、Bw过滤、对象检测、颜色调整、级别调整)

大家都知道,新手机拍摄的图像质量高、尺寸大,由于内存限制,图像处理比较困难,outofmemoryException经常发生,所以我将图像处理从Java层完全转移到JNI,如下所示:

  • 按源文件路径加载到jni中的Mat文件
  • 处理
  • 结果存储在sd卡中
  • 结果图像作为预览加载到inSampledSize位图中
  • 此方法在图像处理中不会发生OutOfMemoryException。 但有时,当图像尺寸非常大时,活动在图像处理过程中自动关闭,毫无例外,并且其原因未指定调试时间。 为什么会这样?我怎样才能解决这个问题


    请原谅我的英语。

    有两件事你可以做两件:

    首先检查在执行图像处理时是否出现问题,如果是,请尝试从主线程卸载该问题,并在一个单独的线程中执行该问题(可能是一个异步任务)。有关此功能的更多信息,请参阅


    尝试将高分辨率图像(位图)设置为图像视图时,内存不足问题很容易发生。如果要执行此操作,应先降低分辨率,然后再将其设置为ImageView。有关这方面的更多信息,请参阅此和此。

    有两件事可以做:

    首先检查在执行图像处理时是否出现问题,如果是,请尝试从主线程卸载该问题,并在一个单独的线程中执行该问题(可能是一个异步任务)。有关此功能的更多信息,请参阅


    尝试将高分辨率图像(位图)设置为图像视图时,内存不足问题很容易发生。如果要执行此操作,应先降低分辨率,然后再将其设置为ImageView。有关这方面的更多信息,请参阅此和此。

    谢谢,但我在异步任务中进行图像处理,我说“结果图像(位图)作为预览加载到inSampledSize(缩放)位图中。”因此它不是高分辨率位图。请暂时尝试使用此android:largeHeap=“true”。如果它能工作,你可能需要优化你的内存使用。谢谢,但我在异步任务中做图像处理,我说“结果图像(位图)作为预览加载到inSampledSize(缩放)位图中。”所以它不是高分辨率位图。请暂时尝试使用这个android:largeHeap=“true”。如果它起作用,你可能需要优化你的内存使用。