如何在Android应用程序中集成opencv管理器

时间:2013-10-17 08:33:11

标签: android opencv

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

先谢谢

2 个答案:

答案 0 :(得分:4)

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

2 - 在应用程序项目中,在Project中添加对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 - 如果您已将以下代码添加到您的活动中,请注释掉OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8,this,mLoaderCallback); 您不需要再次在resume事件上加载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

答案 1 :(得分:0)

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