4

我正在开发一个使用 opencv 库的 android 应用程序,它是 opencv 管理器应用程序。它需要预先安装opencv管理器,我想将opencv管理器集成到我的应用程序中,这样就不需要在外部安装opencv管理器

提前致谢

4

2 回答 2

4

1 - 将 OpenCV 库项目添加到您的工作区(使用菜单文件 -> 导入 -> 工作区中的现有项目。)

2 - 在应用程序项目中添加对 OpenCV Java SDK 的引用项目 -> 属性 -> Android -> 库 -> 添加选择 OpenCV 库 - 2.4.8。

3 - 添加一个文件夹并将其命名为“jni”

4 - 将 Android.mk 文件添加到 jni 文件夹中。它的主体应该如下所示:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# OpenCV
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
include ../../sdk/native/jni/OpenCV.mk

5 - 将 Application.mk 文件添加到 jni 文件夹中。它的主体应该如下所示:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-9

6 - 将此添加到您的活动中

static {
        if (!OpenCVLoader.initDebug()) {
            // Handle initialization error
        }
    }

7 - 如果您在 Activity 中添加了以下代码,请注释掉 OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this, mLoaderCallback); 您不再需要在恢复事件中加载 OpenCV。

@Override
    public void onResume() {
        super.onResume();
        //OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this, mLoaderCallback);
    }

    private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            switch (status) {
            case LoaderCallbackInterface.SUCCESS:
                //OpenCV loaded successfully
                break;
            default:
                super.onManagerConnected(status);
                break;
            }
        }
    };

也看看这个: http ://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization

于 2014-03-27T03:21:53.303 回答
0

通过使用此 lib AutoInstaller从我的应用程序安装打开的 Cv 获得了另一个解决方案

于 2016-08-01T10:48:35.450 回答