Android studio中配置opencv,不需要opencv manager。

1,下载opencv的安卓版本;

2,利用androidstudio新建一个空项目;

3,将opencv的sdk的文件夹引入androidstudio作为一个module;

4,修改build.gradle的依赖跟app项目的一样环境;

5,修改新引入的opencv的模块的build.gradler的      apply plugin: 'com.android.application'    修改为   

apply plugin:'com.android.library'  ;然后删掉   applicationId  属性。这样才能作为一个模块引入到主应用app里面。

6,为了不用每次使用时都要安装opecn-manager的app,我们把他们引入进来:

将sdk\native下的libs文件夹拷贝到你的安卓项目下,即\app\src\main下面,并且将libs改名为jniLibs

7,再次回到Android studio,点击Build-Make project,等待项目构建完成,如果没有报错,就证明opencv已经配置好了,接下来可以进行开发工作了。

 

8,最后在这里补充一个知识点,很多人在按照如上配置之后,跑opencv的程序会提示没有安装opencv manager,这个问题其实是因为老版的opencv中的onResume()函数没有成功调用集成进去的opencv包文件,我们只要修改一下即可:

老版的opencv程序中是这样写的:

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

    1
    2
    3
    4
    5
    6

我们需要改成这样,直接赋值我这一段进去即可:

@Override
    //想要opencv不依赖opencvmanager,关键就在这里,除了基本的把文件复制到项目中外,
    // onResume函数必须写成以下形式,这样才能调用到复制过来的包文件
    public void onResume()
    {
        super.onResume();
        if (!OpenCVLoader.initDebug()) {
            Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
        } else {
            Log.d(TAG, "OpenCV library found inside package. Using it!");
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
        //super.onResume();
        //OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback);
    }
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Android Studio 使用基于 C++ 的 OpenCV需要进行以下配置步骤: 1. 下载 OpenCV for Android 并解压缩。可以从 OpenCV 官网下载最新版本。 2. 安装 Android NDK。可以从 Android Studio 的 SDK Manager 下载并安装。 3. 在 Android Studio 创建一个新项目并打开 build.gradle 文件。 4. 在 build.gradle 文件的 android 节点添加以下代码: ```gradle externalNativeBuild { cmake { cppFlags "" abiFilters "" } } ``` 5. 在 build.gradle 文件的 defaultConfig 节点添加以下代码: ```gradle externalNativeBuild { cmake { path "CMakeLists.txt" } } ``` 6. 在项目目录下创建一个 CMakeLists.txt 文件,并添加以下代码: ```cmake cmake_minimum_required(VERSION 3.4.1) add_library( native-lib SHARED native-lib.cpp ) find_library( log-lib log ) target_link_libraries( native-lib ${log-lib} ) add_library( opencv SHARED IMPORTED ) set_target_properties( opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/../sdk/native/libs/${ANDROID_ABI}/libopencv_java3.so ) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../sdk/native/jni/include ) target_link_libraries( native-lib opencv ) ``` 7. 在 src/main 目录下创建一个 cpp 目录,并在其添加一个 native-lib.cpp 文件。在该文件添加以下代码: ```c++ #include <jni.h> #include <string> extern "C" JNIEXPORT jstring JNICALL Java_com_example_myapplication_MainActivity_stringFromJNI( JNIEnv* env, jobject /* this */) { std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str()); } ``` 8. 在 MainActivity.java 文件添加以下代码: ```java static { System.loadLibrary("native-lib"); System.loadLibrary("opencv"); } public native String stringFromJNI(); ``` 9. 构建并运行应用程序,如果一切配置正确,应该能够在应用程序看到 "Hello from C++" 的输出。 以上是在 Android Studio 配置基于 C++ 的 OpenCV 的步骤。需要注意的是,这只是一个简单的例子,实际使用需要进行更多的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值