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

时间:2016-07-09 19:12:02

标签: android opencv

我正在开发一个包括图像处理(灰度,Bw过滤,物体检测,颜色调整,水平调整)的应用程序。

众所周知,新手机需要大尺寸的高质量图像。由于内存限制,很难进行图像处理,并且经常会出现异常。因此,我已经将从Java层获取的图像处理移植到JNI,因为如下:

  1. 通过源文件路径以jni加载的mat文件。
  2. 处理....
  3. 结果垫存储在SD卡中。
  4. 在inSampledSize位图中加载的结果图像作为预览。
  5. 在图像处理中,此方法不会发生OutOfMemoryException。 但有时当图像具有非常大的尺寸时,活动在图像处理期间自动关闭而没有任何异常,并且它的原因没有在调试时指定。 为什么会这样?我该如何解决这个问题?

    对不起我的英语。

1 个答案:

答案 0 :(得分:0)

有两件事你可以两个:

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

内存不足当尝试将高分辨率图像(位图)设置为ImageView 时,问题很容易发生。如果您这样做,则应在将其设置为ImageView之前降低分辨率。有关详细信息,请参阅此link以及此stackoverflow post