如何在 Android 应用程序中集成 OpenCV 管理器 [英] How to integrate OpenCV Manager in Android App

查看:37
本文介绍了如何在 Android 应用程序中集成 OpenCV 管理器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的 Android 应用程序中使用 OpenCV2.4.7 库.当应用程序启动时,它会转到名为 OpenCV 管理器的应用程序的 Google Play 商店.有什么方法可以将这个应用程序集成到我的 Android apk 中,因为我们已经在使用 OpenCV 库,那么为什么应用程序又需要 OpenCV 引擎?他们有什么方法可以集成这个引擎吗?

I am using OpenCV2.4.7 Library in my Android app. When app starts its goes to Google Play store for Application called OpenCV Manager. Is there any way to integrate this application in my Android apk because we already using OpenCV library so why app needs OpenCV Engine Again? Is Their any way to integrate this engine?

推荐答案

是的.要将 OpenCV 集成到您的应用程序中,并避免显式安装 OpenCV 管理器,您需要先阅读 OpenCV 提供的以下文档.

Yes. To integrate OpenCV inside your application, and avoid explicit installation of OpenCV manager, you need to first read following document provided by OpenCV.

初读 -> OpenCV 的静态初始化

成功执行步骤后,您需要编写以下代码以在调用 OpenCV API 之前在应用程序初始化代码中启用 OpenCV.可以做到,例如在Activity类的静态部分:

After successfully followed steps, you need to write following code to enable OpenCV in your application initialization code before calling OpenCV API. It can be done, for example, in the static section of the Activity class:

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

参考:

  1. http://answers.opencv.org/question/2033/use-opencv-on-android-without-manager/
  2. OpenCV Android 上的静态初始化

编辑

根据文档中的新场景并感谢@rozhok 提供的新信息,initDebug() 方法不能用于生产构建

Edit

As per new scenario in Document and thanks to @rozhok for providing new information, initDebug() method can't be used for production build

注意 对于生产代码,不推荐使用此方法.它仅用于实验和本地开发目的.如果您想通过异步初始化发布您的应用使用方法.

Note This method is deprecated for production code. It is designed for experimental and local development purposes only. If you want to publish your app use approach with async initialization.

您需要使用以下方法

语法

static boolean initAsync(String Version, Context AppContext, LoaderCallbackInterface Callback)

示例

public class Sample1Java extends Activity implements CvCameraViewListener {

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

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

    ...
}

参考资料

  1. http://docs.opencv.org/doc/tutorials/介绍/android_binary_package/dev_with_OCV_on_Android.html

这篇关于如何在 Android 应用程序中集成 OpenCV 管理器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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