如何使用openCV Camera而不在设备中安装opencv manager?

时间:2016-05-26 13:20:16

标签: android opencv android-studio opencv3.0

在结束问题之前:我已经完成了其他SO答案,但没有人展示如何使用Android Studio修复此问题。

我正在使用opencv库来检测应用程序中的卡片。应用程序就像文档扫描程序,但它使用JavaCameraView而不是图像位图。

mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.live_camera_frame);

我的问题是,在使用JavaCameraView时,它总是要求从Play商店安装OpenCV Manager。

即使按照android studio中openCV静态初始化的步骤,它也是asking me for download openCV manage APK from playstore。我使用的是android studio 1.5和opencv library 3.1.0

任何人都可以告诉我如何使用OpenCV Camera而不将Opencv管理器安装为独立应用程序?

截至目前,我不希望用户像图片一样被提示进行对话。如果我们可以将openCV库作为项目的一部分包含在内,并且我们可以在不安装的情况下使用它。

我按照这里的步骤application-development-with-static-initialization 但它是为eclipse而我正在使用android studio。我为eclipse尝试了同样的事情但是它在标准的openCV库中给出了错误 class not found.

1 个答案:

答案 0 :(得分:2)

这样做

在主文件夹下创建一个jniLibs文件夹(与java文件夹相同的位置)

只需从/ sdk / native / libs /复制相应的OpenCV本机库(应该有七个文件夹,mips,x86等......复制你需要的文件夹,取决于你的应用程序将运行什么cpu)项目目录到文件夹jniLibs

然后在你的活动中

@Override
public void onResume() {
    super.onResume();
    if (!OpenCVLoader.initDebug()) {
        Logger.d("Internal OpenCV library not found. Using OpenCV Manager for initialization");
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_1_0, this, mLoaderCallback);
    } else {
        Logger.d("OpenCV library found inside package. Using it!");
        mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
    }
}

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