文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android studio配置OpenCV的JNI接口,实现C++代码编程

2023-09-03 16:35

关注

目录

一、下载OpenCV-android-sdk

二、新建项目

三、导入OpenCV包

 四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件

五、修改Cmake文件

 六、配置app的build.gradle文件

 七、测试


一、下载OpenCV-android-sdk

OpenCV官网地址:https://opencv.org/ 

点击Library-->Releases,下载Android版本,解压得到 OpenCV-android-sdk文件夹。​​​​​​

二、新建项目

打开Android studio, File-->New-->New Project,选择最后一项Native C++

 进入配置页面,命名为test,点击Next

 C++标准根据自身需求设置,这里我选择默认工具链,点击Finish

 项目建成后,在真机/模拟器上运行,试一下效果

三、导入OpenCV包

点击File-->New-->Import module,选择刚刚解压的OpenCV-android-sdk文件夹,找到sdk,

修改Module name为opencv,点击Finish

 点击完Finish之后,会报错,需要把红框中的代码注释掉,蓝框中的Sdk版本型号与app下的build.gradle(绿框)的Sdk版本型号一致。

 点击File-->Project Structure-->Dependencies-->app-->Module Dependency

 勾选opencv,点击OK

 四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件

把OpenCV-android-sdk下的OpenCV-android-sdk/sdk/native/jni/include文件夹拷贝到你项目

src/main/cpp下面。

把OpenCV-android-sdk下的OpenCV-android-sdk/sdk/native/libs文件夹拷贝到你项目src/main/

 下面,并修改名字为JniLibs。

五、修改Cmake文件

打开CMakeLists.txt文件,添加如下代码(推荐复制),修改的地方只有最上面和最下面两部分,中间部分为系统生成的内容,没有改动。

# 设置include文件夹的地址include_directories(${CMAKE_SOURCE_DIR}/include)add_library(libopencv_java4 SHARED IMPORTED)set_target_properties(libopencv_java4 PROPERTIES IMPORTED_LOCATION        E:/test/app/src/main/JniLibs/${ANDROID_ABI}/libopencv_java4.so)

把红框里的地址改成你的JniLibs地址(四.2创建的文件夹地址)

 在最下面的target_link_libraries添加libopencv_java4

 六、配置app的build.gradle文件

添加的第一部分

externalNativeBuild {            cmake {                cppFlags ''                arguments "-DANDROID_STL=c++_shared"            }        }        ndk {            abiFilters 'x86', 'x86_64', 'armeabi-v7a',                    'arm64-v8a'        }

 

 2、添加的第二部分

注意:jniLibs.srcDirs = [‘libs’] 千万不要写为:jniLibs.srcDirs = [src/main/JniLibs’] 否则程序会报错

    sourceSets {        main {            jniLibs.srcDirs = ['libs']        }    }    splits {        abi {            enable true            reset()            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for            universalApk true //generate an additional APK that contains all the ABIs        }    }

 3、添加的第三部分

    project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]    android.applicationVariants.all { variant ->        variant.outputs.each { output ->            output.versionCodeOverride =                    project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 1000000 + android.defaultConfig.versionCode        }    }

 七、测试

先构建,点击Make Project(小锤子),然后打开native-lib.cpp文件,先试着引入一下包,输入

#include 如果报红,点击下面1和2就不报红了

 包含OpenCV的头文件不报红就配置成功了,如下:

恭喜你,配置成功了,可以开始在Android平台下用C++来开发opencv代码了。 

来源地址:https://blog.csdn.net/weixin_51244415/article/details/131088634

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯