Android 的 openCV - 集成问题
openCV for Android - problems in integration
我需要在我的 app.First 中集成 OpenCV 2.4,我发现它需要 OpenCV Manager for 运行 基于 OpenCV 的应用程序。但是,经过一些谷歌搜索,我发现了另一种使用静态初始化的方法 here and here。我试过了,但没有用:
伪代码:
public class MainActivity extends Activity {
static {
if (!OpenCVLoader.initDebug()) {
Log.d(TAG,"init failed")
}
}
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
Log.i(TAG, "OpenCV loaded successfully");
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
@Override
public void onResume() {
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4, this,
mLoaderCallback);
}
}
我试过了,但没用。它显示用于安装 openCV 管理器的相同弹出窗口。
我还尝试在 onResume 和 mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS)
中删除 initAsync()
;但是当我使用它时应用程序崩溃了。
谁能指导我正确的方法?并且请不要标记为重复;关于 SO 的问题有成百上千个未回答。
如果您使用 Android Studio,请检查:https://github.com/floatlearning/android-opencv-template
然后,在 Android 设备上安装 属性 OpenCV Manager
我自己解决了。您不需要在 JNI 库之后编写 .so
扩展名。
我写错了:
System.loadLibrary("lib1.so");
System.loadLibrary("lib2.so");
毕竟找到了正确的方法:
System.loadLibrary("lib1");
System.loadLibrary("lib2");
如上所述,不需要编写 .so
扩展名。
我需要在我的 app.First 中集成 OpenCV 2.4,我发现它需要 OpenCV Manager for 运行 基于 OpenCV 的应用程序。但是,经过一些谷歌搜索,我发现了另一种使用静态初始化的方法 here and here。我试过了,但没有用:
伪代码:
public class MainActivity extends Activity {
static {
if (!OpenCVLoader.initDebug()) {
Log.d(TAG,"init failed")
}
}
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
Log.i(TAG, "OpenCV loaded successfully");
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
@Override
public void onResume() {
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4, this,
mLoaderCallback);
}
}
我试过了,但没用。它显示用于安装 openCV 管理器的相同弹出窗口。
我还尝试在 onResume 和 mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS)
中删除 initAsync()
;但是当我使用它时应用程序崩溃了。
谁能指导我正确的方法?并且请不要标记为重复;关于 SO 的问题有成百上千个未回答。
如果您使用 Android Studio,请检查:https://github.com/floatlearning/android-opencv-template 然后,在 Android 设备上安装 属性 OpenCV Manager
我自己解决了。您不需要在 JNI 库之后编写 .so
扩展名。
我写错了:
System.loadLibrary("lib1.so");
System.loadLibrary("lib2.so");
毕竟找到了正确的方法:
System.loadLibrary("lib1");
System.loadLibrary("lib2");
如上所述,不需要编写 .so
扩展名。