Android studio中配置opencv,不需要opencv manager,手机上直接运行,亲测有效

效果可以参照:https://anguomob.com/?app/49.html

 

一:在Android studio中配置opencv简介:
opencv是一款功能强大的图像处理工具,其支持多个平台的图像处理应用,如Windows,MAC,Android等,当然使用最多的还是PC端的开发,配置在VS2019中使用,方便快捷。笔者因为最近接触到一个项目,需要将PC端的工程移植到Android手机平台来实现,所以开始尝试在手机端进行图像处理的开发工作,之后会把进度和遇到的问题慢慢更新出来。

二:软件工具介绍:
1:Android studio3.6版本,我用的是目前最新的版本,遇到的问题也是最多的,下面会一一讲述
2:AndroidSDK
3:OpenCV-android-sdk

三:配置步骤:
1:安装好Android studio,这一步不会的可以去参考其他大佬的配置方法,正常安装即可。现在的Android studio比较人性化了,自身集成了java的jdk,不需要单独去配置java环境,一般来说,内置的jdk就已经够用了。
2:下载opencv for Android版,这个可以在官网下载,下载最新的版本就可以,下载下来后进行解压。
下载地址:链接:https://pan.baidu.com/s/1ciZGQjA3lUtCTIyHGdopBw
提取码:wo97
复制这段内容后打开百度网盘手机App,操作更方便哦
下载后解压出来的文件目录:我的是解压到:D:\project\android\demo\opencv-3.4.3-android-sdk\OpenCV-android-sdk

 

3:打开Android studio,
File–>New–>Import Module

1)选择D:\project\android\demo\opencv-3.4.3-android-sdk\OpenCV-android-sdk\sdk\java

2)Module name: Android studio会自动填充这项为openCVLibrary343 (不同版本对应的数字也不一样),不用管它.

3)点击下一步,会出现三个复选框,都选上,点击Finish

 


4:上一步结束后,opencv包文件就倒入Android studio中了,接下来开始配置到项目中,依次点击:

1)File–>Project Structure

2)左边Dependencies栏下选择app

3)在右边挨着的上面一栏中可以看到+号

4)点击右边栏中的“+”,选择第三个Module Dependency

5)里面应该是对应的opencv的包文件,点击ok退出,然后再点击ok退出

::5:上面一步完成之后,开始对项目的配置文件进行修改,这一步很重要,版本号有一个地方没对准就会编译出错。

可以看到Gradle Scripts目录下,有三个build.gradle文件,我们需要对app的build.gradle和opencv的build.gradle文件进行版本号的修改,分别记下app的build.gradle文件中的

后面的数值

compileSdkVersion

buildToolsVersion

minSdkVersion

targetSdkVersion

点击打开opencv的build.gradle文件,把文件中对应的

compileSdkVersion

buildToolsVersion

minSdkVersion

targetSdkVersion

后的数值改成app中一样的

这是app的build.gradle文件
这是修改完成后opencv的build.gradle文件

6:上一步完成后,opencv在Android中的配置就基本完成了,这个时候先点击一下Build-Make project,构建一下项目,看下会不会报错,只要版本号修改的一样,应该不会报错了。注意这里有可能会报一个最小版本大于虚拟机版本的错误,只需要把minSdkVersion的数字改成你目前Android studio中创建的虚拟机的版本即可。
接下来我们要做的是一个很重要的步骤,就是把opencv的包文件添加到项目中,这样程序在手机上跑的时候就不需要opencv manager这个安装文件了。集成完成后,我们生成的APK安装包大小会有70M左右,当然这也是为了方便用户下载安装软件。总不能每一次安装APP,都要单独再下载安装一个opencv manager吧,这样的APP用户体验极差。
具体步骤:
1)把OpenCV sdk for Android文件下D:\project\android\demo\opencv-3.4.3-android-sdk\OpenCV-android-sdk\sdk\native下的libs文件夹拷贝到你的安卓项目下,

即Opencvtest\app\src\main下面,并且将libs改名为jniLibs

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

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

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

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



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

@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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值