android中调用onnxruntime框架

创建空白项目

安装Android Studio及创建空白项目参考:【安卓Java原生开发学习记录】一、安卓开发环境的搭建与HelloWorld(详细图文解释)_安卓原生开发-CSDN博客

切记:build configuration language 一定选择Groovy!官方demo中就是选择的这个!

在Android上安装(JAVA/KOTLIN)

下载opencv Android sdk:Releases - OpenCV

点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹,并将:sdk修改为:opencv

修改build.gradle(opencv)

将 apply plugin: 'kotlin-android' 进行注释

添加 namespace "org.opencv"

修改 defaultConfig 里的版本

增加 buildFeatures

buildFeatures {aidl  truebuildConfig  true}

buildFeatures放在buildTypes的前边。

应用 OpenCV 库到 APP 

点击file->project structure ->Dependencies->app->3 Module Dependency,然后给opencv打上对勾,应用即可

build.gradle(:app)添加onnx runtime的java库,

     // choose one of the two below:implementation 'com.microsoft.onnxruntime:onnxruntime-android:latest.release'  // full package//implementation 'com.microsoft.onnxruntime:onnxruntime-mobile:latest.release'  // mobile package

导入java包

代码中的一些注意事项

代码中加载opencv,根据需要在首次使用opencv的类中加载一次。

可能提示找不到对应的*so库,如使用的opencv 4.6.0 提示找不到“libopencv_java460.so”,通过everything发现该库下只有“libopencv_java4.so”,所以需要修改一下Core类

修改:

运行得到onnx模型的结果


参考:

【图文详解】Android Studio(新版本) 配置OpenCV库,解决出现的各种问题 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机-LCD液晶显示

目录 前言: 一. LCD1602模块简介 二. 代码功能实现 三.总结 前言: 本文主要是51单片机的LCD液晶显示,使用的是LCD1602.下面是详细介绍和完整代码,欢迎大家的点赞,评论和关注.感谢. 一. LCD1602模块简介 LCD1602 模块具有以下特点: 显示特点: 可以…

MySQL 将null转0 ifnull() coalesce()

做统计报表的时候,有时候不希望查出来的值是null,因为在代码中需要做大量的判空,最后转换成0来处理。既然如此,那在sql中查出来就是0,就不用为空而去判空了。 1.IFNULL() ifnull()只能放2个值。 select IFNULL(null,0…

[240608] Zig 发布 v0.13.0 |AMD 新处理器不支持 Win 10 |DuckDuckgo 发布AI匿名聊天服务

目录 Zig 发布 0.13.0 版本AMD 下一代锐龙处理器不支持 Windows 10DuckDuckgo 发布 AI 匿名聊天服务 Zig 发布 0.13.0 版本 Zig 发布 0.13.0 版本,此次发布的主要目的是升级 zig 工具链,发布重点如下: 工具链升级: LLVM&#xf…

DevOps的原理及应用详解(六)

本系列文章简介: 在当今快速变化的商业环境中,企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求,因此,DevOps(Development和Operations的组合)应运而生&a…

企业建站响应式网站建设平台版源码系统 海量模版可选择 带完整的安装代码以及搭建教程

系统概述 企业建站响应式网站建设平台版源码系统是一款集创新性、实用性和便捷性于一体的建站解决方案。它旨在为用户提供一站式的网站建设服务,无论你是新手还是经验丰富的开发者,都能通过该系统轻松实现网站的构建与部署。 该系统采用先进的技术架构…

单链表复习 (C语言版)

目录 一.顺序表与链表的区别 二.链表概念 三.单链表 1.单链表的开始与初始化 2.单链表的打印 3.单链表的尾插 重难点:单链表实现时的指针详解 4.单链表的头插 5.单链表的尾删 6.单链表的头删 小结: 7.单链表的查找 8.在指定位置前插入数据 …

mingw64,clang,gcc

MinGW-w64、Clang 和 GCC 都是编译器,但它们在功能和设计上有一些区别: MinGW-w64 是一个在 Windows 平台上的开发工具集,它提供了一组 GNU 工具和库,可以用于编译和构建本地的 Windows 应用程序。MinGW-w64 的主要目标是提供类似…

GitHub工程获取第三方PR操作

GitHub工程获取第三方PR操作 1. 源由2. 获取第三方PRStep 1:安装ghStep 2:获取个人TokenStep 3:通过git协议获取代码Step 4:获取第三方PR分支 3. 总结 1. 源由 通常来说,GitHub上通常有三种场景: 工程管理…

STM32 UART 错误代码 HAL_UART_ERROR_PE

HAL_UART_ERROR_PE 是STM32 HAL库(硬件抽象层库)中UART(通用异步收发传输器)模块定义的一个错误码,表示“Parity Error”(奇偶校验错误)。当UART通信过程中检测到奇偶校验不匹配时,会…

自动化喷涂生产线方案三

本文介绍自动化喷涂生产线的另外一种方案,单工作站方案,单工作站配置一台机械臂和一套除尘柜,代替一个工位完成喷涂工艺,其工作原理简要介绍如下。 一套单工作站的主要组成设备有,10kg负载机械臂一台主要负责喷涂工艺&…

源码讲解kafka 如何使用零拷贝技术(zero-copy)

前言 kafka 作为一个高吞吐量的分布式消息系统,广泛应用与实时应用场景中。为了实现高效的数据传输,kafka使用了零拷贝技术(zero-copy)显著提高了性能。本文将详细讲解 Kafka 如何利用零拷贝技术优化数据传输。 什么是零拷贝 零拷贝技术目的是减少数据传输的效率。在传统…

冯喜运:6.8下周伦敦金行情怎么看?黄金原油下周操作建议

【黄金消息面分析】:黄金不是由通胀驱动的。它也不是由通货紧缩驱动的。它也不是由美元驱动的。当股市反弹时,它也不会下跌,反之亦然。黄金是由市场情绪驱动的。而且,它是黄金市场上唯一的常数,使人们能够对黄金价格趋…

vue elementui el-input 正则验证,限制只能输入数字和小数

vue elementui el-input 正则验证 限制只能输入数字和小数,以下两种方法都可以: 1、οninput“value value.replace(/[^0-9.]/g,‘’)” 2、οninput“value value.replace(/[^\d.]/g, ‘’)” 限制只能输入数字: 1、oninput “valuevalu…

c++使用_beginthreadex创建线程

记录使用_beginthreadex(),来创建线程。方便后期的使用。 创建一个线程 相关函数介绍 unsigned long _beginthreadex( void *security, // 安全属性, 为NULL时表示默认安全性 unsigned stack_size, // 线程的堆栈大小, 一般默认为0 u…

3D打印随形透气钢:技术革新引领模具制造新潮流

在模具制造领域,透气钢一直扮演着重要角色,它能够有效解决模具困气问题,提高注塑成型的效率和质量。然而,传统的透气钢制造方法受限于工艺和材料,难以满足复杂模具的需求。随着3D打印技术的飞速发展,3D打印…

Go微服务: 分布式之通过本地消息实现最终一致性

概述 我们的业务场景是可以允许我们一段时间有不一致的消息的状态的,并没有说必须特别高的这个消息的一致性比如说在TCC这个架构中,如果采用了消息的最终一致性,整体架构设计要轻松好多即便我们库存服务挂了,或者我们积分服务挂了…

【2024PythonPycharm详细安装教程】

1.打开官网 https://www.python.org/ downloads——>Windows 2.找到 Download Windows installer (64-bit) 下载 3.下载完成双击安装包 勾选Add python.exe to PATH(自动配置系统变量) 点击Install Now(默认安装) 然后看到安装成功&#xff0…

LeetCode-day05-3038. 相同分数的最大操作数目 I

LeetCode-day05-3038. 相同分数的最大操作数目 I 题目描述示例示例1:示例2: 思路代码 题目描述 给你一个整数数组 nums ,如果 nums 至少 包含 2 个元素,你可以执行以下操作: 选择 nums 中的前两个元素并将它们删除。…

深度学习中2D检测

深度学习中的2D目标检测 2D目标检测是深度学习中的一个关键任务,旨在识别图像中的目标对象,并在每个目标对象周围生成一个边界框。该任务在自动驾驶、视频监控、机器人视觉等领域具有广泛应用。以下是对深度学习中2D目标检测的详细介绍,包括…

通过windbg查看dump文件中静态变量的值

可以使用 WinDbg 和 SOS 扩展来查看它们。下面是如何使用 WinDbg 和 SOS 的步骤: 打开 WinDbg,并用它打开你的 dump 文件。你可以使用 File → Open Crash Dump 来实现。 在命令行中,加载 SOS 扩展。一般来说这可以通过 .loadby sos clr 来完…