android 和 opencv 开发环境搭建
本文详细说明给android项目添加opencv库的详细步骤,并通过实现图片灰度化来查看配置是否成功。
下载OPENCV ANDROID SDK
到官网下载
打开 https://opencv.org/releases/

选择android,下载完成后解压出下面的文件:

安装android sdk 和 ndk
在Android studio中打开sdk管理器即可下载:

新建C++工程
打开Android studio,选择模板,这时选择最后一项Native C++,然后进入配置界面。
配置项目
选择C++14

配置OpenCV库
OpenCV库作为Module导入
导入OpenCV模块
具体步骤为:File->New->Import Module:

然后将OpenCV-android-sdk\sdk目录导入,最好顺便将模块名改成opencv+版本号。如下图,然后Next->Finish。

改OpenCV下的build.gradle文件, 将下图中的两处改为与app模块的设置一致
添加依赖,菜单栏选择File->Project Structure,在Dependencies选项中选择app,点击+,选择Module dependency,如下图:

勾选OpenCV,点击OK,等待同步

配置参数,打开app的build.gradle,在android.defaultConfig下面添加如下配置:
externalNativeBuild {cmake {cppFlags '-std=c++14 -frtti -fexceptions'abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'arguments "-DOpenCV_DIR=" + project(":opencv480").projectDir + "/native/jni",'-DANDROID_STL=c++_shared'}}
这时环境就算配置好了。
下面用一个简单和灰度化验证一下。
灰度化
关键代码:
override fun onResume() {super.onResume()if (!OpenCVLoader.initDebug()){Log.i("main","未找到内部的opencv库")}else{Log.i("main","发现了内置的opencv库");doGray()}}private fun doGray(){val bitmap = BitmapFactory.decodeResource(resources,R.drawable.ldh)val bit = bitmap.copy(Bitmap.Config.ARGB_8888,false)val src = Mat(bit.height,bit.width,CvType.CV_8UC(3))Utils.bitmapToMat(bit,src)Imgproc.cvtColor(src,src,Imgproc.COLOR_BGR2GRAY)Utils.matToBitmap(src,bitmap)binding.sampleImage.setImageBitmap(bitmap)}
效果:

成功!!
相关文章:
android 和 opencv 开发环境搭建
本文详细说明给android项目添加opencv库的详细步骤,并通过实现图片灰度化来查看配置是否成功。 下载OPENCV ANDROID SDK 到官网下载 打开 https://opencv.org/releases/ 选择android,下载完成后解压出下面的文件: 安装android sdk 和 ndk …...
elasticsearch[一]-索引库操作(轻松创建)、文档增删改查、批量写入(效率倍增)
elasticsearch[一]-索引库操作(轻松创建)、文档增删改查、批量写入(效率倍增) 1、初始化 RestClient 在 elasticsearch 提供的 API 中,与 elasticsearch 一切交互都封装在一个名为 RestHighLevelClient 的类中,必须先完成这个对象的初始化,…...
tp6框架中Http类 请求的header、body参数传参 及post、file格式
引入Http类: 在需要使用的地方引入Http类: use think\facade\Http; GET请求示例:$response Http::get(https://example.com/api/resource); 设置Header参数: $headers [ Authorization > Bearer YourAccessToken, Conte…...
基于极限学习机的图像处理,基于ELM的图像分割,基于极限学习机的细胞分割
目录 背影 极限学习机 基于极限学习机的图像,基于ELM的图像分割 主要参数 MATLAB代码 效果图 结果分析 展望 完整代码下载链接:基于极限学习机的图像,基于ELM的图像分割(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88759192 背…...
ELAU C400/A8/1/1/1/00嵌入式系统中的模块动态加载技术
ELAU C400/A8/1/1/1/00嵌入式系统中的模块动态加载技术 ... 代码。这些script会根据模块名字查找模块对应的模块声明文件,并根据该 ... 的地址,注册时需提供模块名和模块重定位表的地址。加 ... 。这个表的表项是“模块名”到“模块重定位表地址”…...
github clone Failed to connect to github.com port 443 after xxx ms
最近克隆github项目时老是报超时,可以尝试以下解决方法 如果本地开启了代理还是clone超时,可以尝试最后一种方式解决 1、把 https 换成 http,如: git clone http:xxx2、更新本地hosts配置,可以参考这篇文章获取最新的…...
ARM的一些基础知识
1.低功耗接口 P-CHANNEL和Q-CHANNEL AMBA低功耗接口(一)Q_Channel_q-channel p-channel-CSDN博客 AMBA低功耗接口(二)P_Channel_p channel-CSDN博客 2.WFI和WFE指令 ARM WFI和WFE指令 ARM hint instruction-WFI(Wait For In…...
零售的数字化转型,利用AWS云服务资源如何操作?
国内市场趋于饱满,各行各业的发展接近瓶颈,就连零售行业都竞争激烈,随处可见的零售小店也预示着需要投入大量的人力,而且由于消费者的行为和预期已经发生了根本性变化,这迫使零售商不得不加速整个价值链的数字化转型&a…...
【通知】我的教学文章《Rust跟我学》已全部上线
大家好,我是get_local_info开源库作者带剑书生,现在我的《Rust跟我学》专栏文章已全部上线,它记录了我在写库时获得的重要Rust经验和技巧,是不同于《Rust语言编程》等简单实践的书籍。为您节省了学习时间,让您可以快速…...
Docker安全基线检查需要修复的一些问题
一、可能出现的漏洞 限制容器之间的网络流量 限制容器的内存使用量 为Docker启用内容信任 将容器的根文件系统挂载为只读 审核Docker文件和目录 默认情况下,同一主机上的容器之间允许所有网络通信。 如果不需要,请限制所有容器间的通信。 将需要相互通…...
MobX 的 Observable Array,如何转换成一个普通的数组
问题描述 访问mobx store里面的数据时打印结果为如下,是一个 MobX 的 Observable Array,而不是一个普通的数组。MobX 使用 Proxy 来实现响应式数据,因此打印的结果为的是 Proxy 对象。可是我需要的是实际的数组数据。 Proxy {0: Proxy, 1: …...
spring boot集成loback日志配置
1.spring boot中application.properties配置 logging.configclasspath:loback-config.xml 2.配置loback-config.xml <?xml version"1.0" encoding"UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR <…...
【mars3d】 graphic.bindPopup(inthtml).openPopup()无需单击小车,即可在地图上自动激活弹窗的效果。
实现效果:new mars3d.graphic.FixedRoute({无需单击小车,即可在地图上实现默认打开弹窗的激活效果。↓↓↓↓↓↓↓↓ 相关链接说明: 1.popup的示例完全开源,可参考:功能示例(Vue版) | Mars3D三维可视化平台 | 火星科…...
工厂企业消防安全AI可视化视频智能监管解决方案
一、方案背景 2023年11月20日下午6时30分许,位于江苏省无锡市惠山区前洲街道的某公司突发严重火灾,共造成7人死亡。这次火灾提醒我们工业安全至关重要,企业都应该时刻保持警惕,加强安全意识和培训,提高应对突发事件的…...
【并发编程】synchornized原理
📝个人主页:五敷有你 🔥系列专栏:并发编程 ⛺️稳重求进,晒太阳 目录 Monitor概念 Java对象头 普通对象 数组对象 Monitor(锁) Monitor结构如下: 注意: 原理之synchornized 轻量…...
计算机网络-ACL访问控制列表
上一篇介绍NAT时候就看到了ACL这个东西了,这个是什么意思?有什么作用呢? 一、ACL访问控制列表 访问控制列表 (ACL, Access Control List)是由一系列permit或deny语句组成的、有序规则的列表。ACL是一个匹配工具,能够对报文进行匹配…...
论文学习记录之SeisInvNet(Deep-Learning Inversion of Seismic Data)
目录 1 INTRODUCTION—介绍 2 RELATED WORKS—相关作品 3 METHODOLOGY AND IMPLEMENTATION—方法和执行 3.1 方法 3.2 执行 4 EXPERIMENTS—实验 4.1 数据集准备 4.2 实验设置 4.3 基线模型 4.4 定向比较 4.5 定量比较 4.6 机理研究 5 CONCLUSION—结论 1 INTRODU…...
深度学习中的优化方法
深度学习中的优化问题通常指的是:寻找神经网络上的一组参数 θ \theta θ,它能显著地降低代价函数 J ( θ ) J(\theta) J(θ...
【设计模式之美】重构(三)之解耦方法论:如何通过封装、抽象、模块化、中间层等解耦代码?
文章目录 一. “解耦”概述二. 如何给代码“解耦”?1. 封装与抽象2. 中间层2.1. 引入中间层能**简化模块或类之间的依赖关系**。2.2. 引入中间层可以起到过渡的作用,能够让开发和重构同步进行,不互相干扰。 3. 模块化4. 其他设计思想和原则4.…...
Spring MVC学习之——Controller类中方法的返回值
Controller类中方法的返回值 1.返回ModelAndView RequestMapping("/hello")public ModelAndView hello(){//封装了页面和数据ModelAndView view new ModelAndView();//对这个请求的页面添加属性(数据)view.addObject("hello",&quo…...
哔咔漫画下载器:构建个人离线漫画库的完整解决方案
哔咔漫画下载器:构建个人离线漫画库的完整解决方案 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mir…...
二层与三层交换机核心差异解析:从MAC地址到IP路由的实战指南
1. 项目概述:从“傻”到“聪明”的进化之路如果你刚接触网络设备,看到“二层交换机”和“三层交换机”这两个名词,可能会有点懵。它们长得都差不多,都是方方正正的铁盒子,前面板一堆网口,后面插着电源和风扇…...
汽车软件测试实战指南:从MiL到HiL的测试体系与工程实践
1. 汽车软件测试:从术语迷雾到实战地图 干了十几年嵌入式,从消费电子一路干到汽车电子,最深的感触就是: “隔行如隔山” ,这话在汽车软件测试领域体现得淋漓尽致。刚入行那会儿,听到同事讨论MiL、SiL、Hi…...
【紧急预警】Perplexity v3.2+图谱查询API行为突变:4类高危误用场景及24小时内修复方案
更多请点击: https://codechina.net 第一章:Perplexity知识图谱查询 Perplexity 是一款基于大语言模型的实时知识检索工具,其底层融合了多源结构化知识图谱与动态网页索引能力,支持对实体、关系及事件进行语义化查询。不同于传统…...
pdf2pptx:打破学术演示壁垒的智能转换神器
pdf2pptx:打破学术演示壁垒的智能转换神器 【免费下载链接】pdf2pptx Convert your (Beamer) PDF slides to (Powerpoint) PPTX 项目地址: https://gitcode.com/gh_mirrors/pd/pdf2pptx 你是否曾因LaTeX Beamer制作的精美数学公式幻灯片无法在PowerPoint中完…...
大学生会计师证书怎么考?2026年小白必看:从入门到进阶的考证通关指南
👋 嗨,亲爱的同学们!如果你点开了这篇文章,我猜你现在可能正坐在图书馆的某个角落,对着满桌的教材发愁,或者是在寝室里刷着手机,看着网上铺天盖地的“会计劝退论”和“考证焦虑”瑟瑟发抖。别慌…...
CANN ops-fft未来规划:51+接口路线图与社区发展蓝图
CANN ops-fft未来规划:51接口路线图与社区发展蓝图 【免费下载链接】ops-fft ops-fft 是 CANN (Compute Architecture for Neural Networks)算子库中提供 FFT 类计算的基础算子库,采用模块化设计,支持灵活的算子开发和…...
技术解密:如何从零构建开源贴片机的完整指南
技术解密:如何从零构建开源贴片机的完整指南 【免费下载链接】lumenpnp The LumenPnP is an open source pick and place machine. 项目地址: https://gitcode.com/gh_mirrors/lu/lumenpnp 在电子制造领域,贴片机一直是小型创客和硬件开发者难以企…...
PyMol实战:从PDB下载1lEP到绘制靶点-药物相互作用图的保姆级教程
PyMol实战:从PDB下载1lEP到绘制靶点-药物相互作用图的保姆级教程 在药物研发和结构生物学领域,可视化分析靶点-药物相互作用是理解分子识别机制的关键环节。PyMol作为一款专业的分子可视化工具,能够帮助研究人员从原子层面解析蛋白质-配体复合…...
从 API 调用到工具链:梳理 AI 介入测试流程的 5 个成熟度等级
2026年,AI正在以前所未有的速度重构软件测试行业。但“AI测试”并非一个开关——从简单调用ChatGPT生成几条用例,到构建完整的Agent自愈测试体系,中间存在一条清晰的能力进化路径。本文将这条路径梳理为5个成熟度等级,结合2026年最新工具、开源项目与行业数据,帮你准确评估…...
