OpenCV Android应用程序停止,但没有错误消息

OpenCV Android应用程序停止,但没有错误消息,android,opencv,Android,Opencv,我使用OpenCV库及其Java包装器开发了一个跟踪彩色球的应用程序。 几分钟后,我的应用程序关闭,没有任何错误消息。 logcat和调试器都没有向我显示任何相关消息。 此外,每次收盘似乎都是随机发生的 在分析了我的应用程序的内存使用情况后,我发现MatOfPoint.toArray()方法产生了大约97%的数据。 但是,如果我的应用程序内存不足,就会出现错误消息。 有可能避免这种方法吗 这是每帧执行的唯一方法 @Override public Mat onCameraFrame(CameraB

我使用OpenCV库及其Java包装器开发了一个跟踪彩色球的应用程序。 几分钟后,我的应用程序关闭,没有任何错误消息。 logcat和调试器都没有向我显示任何相关消息。 此外,每次收盘似乎都是随机发生的

在分析了我的应用程序的内存使用情况后,我发现MatOfPoint.toArray()方法产生了大约97%的数据。 但是,如果我的应用程序内存不足,就会出现错误消息。 有可能避免这种方法吗

这是每帧执行的唯一方法

@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
    mRgba = inputFrame.rgba();
    Imgproc.resize(mRgba, mRgbaF, mRgbaF.size(), 0, 0, 0);
    Core.flip(mRgbaF, mRgba, -1);

    if(mRgba.channels()>1)
        Imgproc.cvtColor(mRgba, smHsv, Imgproc.COLOR_RGB2HSV_FULL);
    else smHsv = mRgba;

    Core.inRange(smHsv, mLowerBound, mUpperBound, mMask);

    contours.clear();
    Imgproc.findContours(mMask.clone(), contours, mHistory, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);

    if(contours.size() > 0){
        MatOfPoint largestContour = new MatOfPoint();
        double max = 0;
        for(MatOfPoint m: contours){
            double tmp = Imgproc.contourArea(m);
            if(tmp > max) {
                max = tmp;
                largestContour = m;
            }
        }

        points = largestContour.toArray();

        Point center = new Point();
        float[] radius = new float[1];
        if(!largestContour.empty()) {
            Imgproc.minEnclosingCircle(new MatOfPoint2f(points), center, radius);
        }

   return mRgba;    
}
是否有我遗漏的任何内容,或者是否有办法获取系统的所有错误消息? 我做错了什么

完整代码可在此处找到: