Android上的OpenCV的初始化问题 [英] OpenCV initialisation issue on Android
问题描述
我用的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屋!