Android上的OpenCV的初始化问题 [英] OpenCV initialisation issue on Android

查看:472
本文介绍了Android上的OpenCV的初始化问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用的OpenCV在Android上,我不明白为什么我不能实例化一个简单的。我觉得我没有做正确实施的OpenCV与BaseLoaderCallback。

I use OpenCV on Android and i don't understand why i can't instantiate a simple Mat. I think I don't do right implementation of OpenCV with the BaseLoaderCallback.

public class MainActivity extends Activity {

private final String TAG = "Main activity";

private BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
       switch (status) {
           case LoaderCallbackInterface.SUCCESS:
           {
          Log.i(TAG, "OpenCV loaded successfully");             
            setContentView(R.layout.activity_main);
           //Mat image = new Mat(); // <--- problem here
           } break;
           default:
           {
          super.onManagerConnected(status);
           } break;
       }
    }
};

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

    public void onResume()
    {
        super.onResume();
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mOpenCVCallBack);
    }

我的LogCat中只有一个FatalSignal 11(SIGSEV)。

My LogCat is only a FatalSignal 11 (SIGSEV).

编辑:许多修改后,这是现在的工作,我不知道为什么,但由于

EDIT : After many modifications, this is now works and i don't know why but thanks.

推荐答案

试试这件作品code的:

Try this piece of code:

垫米;
     私有静态最后弦乐TAG =OCVSample ::活动;

Mat m; private static final String TAG = "OCVSample::Activity";

  private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
    switch (status) {
        case LoaderCallbackInterface.SUCCESS:
        {
            Log.i(TAG, "OpenCV loaded successfully");
            m=new Mat();
        } break;
        default:
        {
            super.onManagerConnected(status);
        } break;
    }
}
};

OpenCV的功能,如不得不在任何一个线程中调用的AsyncTask 或来自OpenCV的函数中。

OpenCV functions such as Mat have to be invoked in either a thread or AsyncTask or from within an OpenCV function.

这篇关于Android上的OpenCV的初始化问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆