终极篇延伸:在android native c++项目中直接内嵌opencv算法

这篇文章看题目让人有点眼晕,且与之前的文章:终极篇 C++算法到安卓的移植——AS调用VS的so库有类似的嫌疑

 

那么这篇文章整理的目的是什么呢?

  • 在安卓项目中以c++的方式调用opencv
  • 可以一次生成x86 x86_64 armeabi-7v armx64-v8a相关库文件,不用根据平台不同再特别设置opencv的配置,且只用设置一次(我在vs2019中就需要设置多次,四个平台Release下就设置了4次)

 

所需软件:android studio3.5(安装好之后配置sdk,jdk,ndk)

opencv-android-sdk (opencv官网直接下载,解压到固定路径)

 

第一步:新建项目,选择native c++

建好之后在/app/src/main/cpp文件夹下默认生成一个native-lib.cpp和CmakeList.txt

第二步:修改生成的so库名称

默认情况下生成的库名称为native-lib.so

打开native-lib.cpp和CmakeList.txt 这两个文件,将native-lib出现的地方全都修改为想要生成的库名称,这里我改为textdetection-lib.so。(包括文件名称都要改)

 

第三步:配置opencv,使得opencv可以在cpp文件中以c++的方式调用

1. 修改CmakeList.txt 文件

2. 修改app/build.gradle文件,配置opencv和平台设置信息

3. 配置好后,需要将opencv-android-sdk中的文件夹sdk\native\libs下的所有文件拷贝到安卓项目的src/main/jinLibs文件夹下

 

第四步:修改textdetection-lib.cpp文件,以c++方式调用opencv

第五步: 显示结果,修改MainActivity.java

第六步:编译运行

编译:菜单栏-- -Build ---- Build Boulds / APK ---- Build APK

分析APK:菜单栏-- -Build ---- Analyze APK,这时可以看到所有平台的结果都显示在内。

运行:菜单栏 ---- Run ---- Run app

我在调用dnn的readNet函数时目前有错,运行时,去掉这一句即可,原因还未找到

错误提示是加载模型文件失败,但是我在c++中可以直接这样用,不知道原因是啥

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值