用 Golang 开发 Android 应用(七)—— OpenCV 使用

gomobile go 调用java_一步一步使用Android调用Golang 前提需要了解的在Android中运行go代码,需要用到一个工具gomobile,后面会说到安装方式。Go开发环境,配置好GOPATH和GOROOT等。AndroidSDK和AndroidNDK准备好Go代码首先要准备好GO的开发坏境,并且配置好GOPATH,咱们的项目叫mobilegomkdir code/mobilegocd code/mobilegoecho export GOPATH=\$G... 阅读详情

计划按以下的内容更新

OpenCV 在 Android 上的配置

OpenCV 是什么就不在这说了,怎么在 Golang 里调用 OpenCV 请看这里,如果对 OpenCV 不太了解的,先在 PC 上把例子跑一跑,初步了解一下。

还是直接从FaceDetect例子 (人脸检测不是人脸识别,这两个是有区别的)来说明 OpenCV 在 Android 中的使用入门吧。

在这里插入图片描述

FaceDetect 例子

这个例子是从 Camera Demo 修改出来的,lib 下多放了 libopencv_java3.so 。同样这个例子受限于平台,是因为 Camera 的限制。如果不用 Camera ,比如做成运行库,那么 OpenCV 在 android 各平台都能跑。

其实单就人脸检测来说,用 OpenCV 只有几行代码,但是真正用于项目,哪怕就象这个简单 Demo 要做的工作不少,象边一类型的应用性能是首先要考虑的问题,因为检测只能异步进行,其状态的维护,结果的绘制,都有比较多的工作要做。

这里列出一些 log ,直观的看下效率问题:

I/GoLog   (16612): DetectYuv: 500.208µs 100.818125ms 377.475835ms 1m20.421008681s
I/GoLog   (16612): DetectYuv: 476.459µs 114.195208ms 377.952294ms 1m20.535203889s
I/GoLog   (16612): DetectYuv: 1.429583ms 279.589166ms 379.381877ms 1m20.814793055s
I/GoLog   (16612): DetectYuv: 1.167083ms 265.318542ms 380.54896ms 1m21.080111597s

上面的数据分别是分辨率为 320x240;640x480 时检测所需的时间大概是 100ms,300ms,由此可看出来,这台手机要达到好一点的效果处理的分辨率为 320x240 较合适。

这个并不代表着需要把分辨率国定为 320x240 而是可以在 func (s *faceDetectStat) detect(gray *core.Mat) 中先把 gray 缩小到320x240左右,再进行接下来的处理,最后记得把坐标放大回来。这样就能在不同分辨率下保持较快的检测速度,达到较好的效果。

代码还是比较好理解的,因为各种硬件差异,在运行的时候需调整显示的旋转角度参数。按正常竖着拿手机的状态,调整角度参数使图象“正”过来,这样才能正确检测人脸。

关于仿真演示/调试

建议用 Android 4.4 以及 ABI 为 arm 的模拟器,在 Windows 下可以装个 《VCam 虚拟摄像头》之类的软件模拟摄像头,这样在仿真配置的时候可选择虚拟摄像头,这样就能在电脑上直接看到运行效果了。

另外就是查看Log,可以用一个叫 Android Log Viewer 的软件。

应用名和图标

如果有编译并运行这个例子,会发现它有自己的应用名和图标了。这可能一直是大家心里的最大疑问。
标准做法当然是用 Android Studio 生成一个项目,然后修改好应用用名和图标等,然后把后成的apk里的 resources.arsc 文件和 res 文件夹直接拷过来。象本例目录下:

│  AndroidManifest.xml
│  resources.arsc
│
└─res
    └─drawable
            ic_launcher.png

修改 AndroidManifest.xml

<application android:hasCode="false"  android:debuggable="true"
	android:label="@string/app_name"
	android:icon="@drawable/ic_launcher"	
	>

看到 android:label="@string/app_name" 和 android:icon="@drawable/ic_launcher" 这样和 Android Studio 生成应用里的 id 相同就行了。

当然也可以直接用本例中的 resources.arsc 只要把 res/drawable/ic_launcher.png 内容改成自定义的(名字不要改),然后用二进制编辑器把 resources.arsc 中的应用名改成自己的(UTF8格式)。就好了!!(不建议这么做,同时不要说是我教你这么做的^_^ )。

总结

把计划中要写的都完成了,基本也涵盖了开发 Android 应用常用的功能或模块。可能有些大线条,主要是我认为很多时候代码已经能说明问题了。如果有什么问题欢迎留言讨论。最后谢谢所有读者!!!

GOLANG gocv进行人脸识别之人脸检测 gocv是一个基于OPENCV的golang项目。 gocv首页是:https://gocv.io/ 想要用gocv进行人脸检测,首先得安装gocv, 官网内有详细的安装步骤,这里就不重复了。 gocv内的函数与opencv的函数名是一样的,差别在于参数的不一样。因为自己没有学过opencv,对opencv的函数不是很熟悉,所以就依葫芦画瓢,百度出py或者C++的人脸检测的例子照着写。  ... 阅读详情

相关推荐

Android + OpenCV 入门教程笔记(保姆级)

笔记基于Android+openCV培训进行记录 OpenCV概述 什么是OpenCV OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和[Mac OS](https://baike.baidu.com/item/Mac OS/2840867)操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多

weixin_43418331的博客 3万+

使用 Go (Golang) 使用 OpenCV 绘制对象 GoCV

本文将向你展示如何使用 OpenCV 使用 Go 编程语言 (Golang) 和 GoCV 包绘制直线、正方形、圆形和椭圆形对象。OpenCV是一个主要用于实时计算机视觉的编程函数库。最初由 Intel 开发,然后由 Willow Garage 和 Itseez 提供支持。这个库是跨平台的,可以在开源 Apache 2 许可下免费使用。除了绘制物体,OpenCV还可以用于人脸检测、运动跟踪等。Go...

深度学习与计算机视觉 4591

使用OpenCV Android SDK从摄像头帧实时检测人脸

在配置好 OpenCV Android SDK 之后(具体见前一篇文章Android Studio中使用OpenCV Android SDK ),可以使用 OpenCV 封装的接口很方便地进行各种图像处理操作。这里简单介绍如何直接使用 OpenCV 训练的人脸模型直接从摄像头帧检测人脸。1. 新建Android Project这里可以直接使用默认的 Android Studio 项目模板, Act

^-^ 2万+

2024年Go最全Go异常处理——defer、panic、recover,Golang零基础

事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!二、panic和recover(宕机和宕机恢复)

2401_84920027的博客 1316

android使用opencv打开摄像头

In this section we'll extend our empty OpenCV app created in the previous section to support camera. We'll take camera frames and display them on the screen.

2503

利用golang进行OpenCV学习和开发的步骤

前言 记得开始使用 OpenCV 的时候是在大学时期,当时用的是 C 语言,OpenCV 版本好像是1.1,随着时间的推移,后面 C++逐渐代替了 C,iOS 也有整合好的 lib 可以使用 OpenCV,现在Python, go 等语言进行开发,今天主要是说一说如何使用 go 语言配置开发 OpenCV。 OpenCV这一名称包含了Open和 Computer Vision两者的意思。实际上,Open指Open Source(开源,即开放源代码),Computer Vision则指计算机视觉。OpenCV的发展对软件的开发具有重要影响。 OpenCV作为开放的数字图像处理和计算机视觉软件平

在Android上开发opencv软件,用 Golang 开发 Android 应用(七)—— OpenCV 使用-Go语言中文社区...

计划按以下的内容更新OpenCV 在 Android 上的配置OpenCV 是什么就不在这说了,怎么在 Golang 里调用 OpenCV 请看这里,如果对 OpenCV 不太了解的,先在 PC 上把例子跑一跑,初步了解一下。还是直接从FaceDetect例子 (人脸检测不是人脸识别,这两个是有区别的)来说明 OpenCV 在 Android 中的使用入门吧。FaceDetect 例子这个例子是从...

weixin_33117401的博客 300

【MATLAB】绘制泽尼克多项式

上次只给了公式没有给代码,很多小伙伴表示不是很认可。今天直接把代码发上来了。

HPC_ZY 5578

用 Golang 开发 Android 应用(非 gomobile)(一 )—— 基本环境配置

用 Golang 开发 Android 应用 -- 基本环境配置——题记计划按以下的内容更新基本环境配置Golang 和 android 有什么关系?基本 go 编译环境Android 的 ndk 编译器的配置命令行环境设置和编译其它 ——题记 遭遇经济寒冬加上中年危机(看我在优快云的注册时间,就知道本人有多“少年”了_),所以简历看得人多,有兴趣聊聊的人少。有人会说是没转到管理的原因,哥可是1...

kaisoft的专栏 3万+

SAP-ABAP:ABAP 开发基础概念入门:写给刚踏入 SAP 开发世界的新人

本文介绍了 ABAP 开发语言的基础概念,帮助 SAP 开发新人快速入门。主要内容包括: ABAP 的发展历程与核心优势 - 作为 SAP 平台的专属语言,ABAP 在企业级应用开发中具有深度集成、数据处理高效和长期稳定的特点 ABAP 开发环境概览 - 介绍了 SE38、SE80 等关键事务码,以及 ABAP 工作台的核心组件和开发权限管理 基础语法入门 - 重点讲解了 ABAP 特有的数据类型体系(特别是结构体和内表),并通过 Hello World 示例展示程序基本结构 文章通过对比 ABAP 与 J

baidu_35680696的博客 511

Open3D——点云构建Delaunay三角网【2026最新版】

点云构建Delaunay三角网

点云侠的博客 8368

用 Golang 开发 Android 应用(二)—— 简单 UI

用 Golang 开发 Android 应用 -- 简单 UI计划按以下的内容更新简单 UI修改 AndroidManifest.xml应用回调说明Activity 相关事件处理Window 相关用 OpenGL ES 实现 UI用 [Dear ImGui](https://github.com/ocornut/imgui)关于 Dear Imgui其它 GUI 计划按以下的内容更新 基本环境...

kaisoft的专栏 8707

CCAR-23《正常类飞机适航规定》和CCAR-25《运输类飞机适航规定》差异分析

通过详细比较CCAR-23和CCAR-25在适用范围、设计标准、性能要求、运行限制、安全冗余和环境适应性方面的差异,我们可以看出,CCAR-23适用于轻型飞机,开发和运营成本较低,设计要求相对简单。而CCAR-25适用于大规模运输飞机,设计、开发、测试和运营管理都需要更高的复杂性和投入。

qq_41854911的博客 3707

用 Golang 开发 Android 应用(六)—— Camera 使用

用 Golang 开发 Android 应用 -- Camera 使用计划按以下的内容更新Android 中的 CameraDemo 代码说明Camera2 计划按以下的内容更新 基本环境配置 简单 UI Storage 使用 Sensor 使用 Audio(openAL) 使用 Camera 使用 OpenCv 使用 Android 中的 Camera   在 Android 中,最初的...

kaisoft的专栏 2303

帝企鹅优化器(EPO)详解:从基础原理到代码实战

帝企鹅优化器(EPO)是受帝企鹅群体在极寒环境中抱团取暖行为启发,于2018年提出的一种群体智能优化算法。其核心机制是模拟帝企鹅种群通过动态调整位置来维持体温的过程,主要包括确定集群边界、计算温度分布、衡量个体间距离以及更新位置四个步骤,从而在求解复杂优化问题时有效平衡全局探索与局部开发。该算法具有参数少、结构清晰、易于实现等优点,在工程优化、图像处理、机器学习特征选择以及冷链物流车辆路径规划等领域展现出良好的应用潜力。

qq_42212808的博客 140

Codex 实战 Skills:编写 Skill 自动为 ESP32 芯片生成 MQTT 订阅与发布的基础代码

为了更清晰地展示 Skill 的工作原理和两种语言的差异,以下提供原理图和比对表格。本文深入探讨了如何利用 Codex 的 Agent 智能体技能(Skills)自动化 ESP32 与 MQTT 通信的代码生成过程。我们首先分析了 IoT 开发的痛点,然后详细设计了 Skill 的输入配置,并分别提供了 MicroPython 和 C++ 两种语言的完整代码实现。通过对比两种语言的优缺点,帮助开发者根据项目需求选择合适的语言。最后,我们提供了详细的运行指南,确保开发者能够快速上手。Skill 设计哲学。

yueyeguzhuo的专栏 82

用 Golang 开发 Android 应用(四)—— Sensor 使用

用 Golang 开发 Android 应用 -- Storage 使用计划按以下的内容更新Sensor 使用关于 SensorSensor 使用sensor.Event 说明Sensor 进阶Sonsor 一些应用场景 计划按以下的内容更新 基本环境配置 简单 UI Storage 使用 Sensor 使用 Camera 使用 OpenCv 使用 Sensor 使用 关于 Sensor ...

kaisoft的专栏 1586

05、CAN 总线拓扑结构详解,线型拓扑搭建要点

CAN总线拓扑与信号完整性优化 本文通过工程实践经验,深入剖析了CAN总线系统中信号完整性的关键要素。主要内容包括: 终端电阻的核心作用:必须严格在总线两端配置120Ω电阻,形成60Ω等效阻抗以匹配双绞线特性阻抗,避免信号反射导致的波形畸变。 阻抗匹配原理:解释了信号能量管理机制,指出阻抗不连续会导致信号反射,并通过示波器波形特征(如振铃现象)判断阻抗失配问题。 信号完整性多维要求:强调信号质量不仅涉及波形存在与否,还包括边沿斜率、共模电压范围等关键参数,这些直接影响通信可靠性。 工程实践建议:提供了终端电

2401_88858637的博客 178

用 Golang 开发 Android 应用(五)—— Audio(openAL)使用

@[TOC](用 Golang 开发 Android 应用 – Audio(openAL) 使用 计划按以下的内容更新 基本环境配置 简单 UI Storage 使用 Sensor 使用 Audio(openAL) 使用 Camera 使用 OpenCv 使用 Audio(openAL) 使用   Audio 是很重要的部分,但我之前漏掉它了,所以最初的计划里没有相关内容,发现这个漏网之鱼...

kaisoft的专栏 2502

SAP_MM模块采购价格确定控制简介

SAP MM模块采购价格确定控制是采购管理中的关键功能,系统通过"价格确定日期"判断条件记录有效性并带出正确价格。文章分析了四种常见业务场景及其对应的价格确定方案:普通采购订单(创建日期)、长期合同(交货日期)、特殊业务(手动输入)和接口下单(系统传入)。详细介绍了配置方法和前台操作步骤,并提供了不同业务类型对应的推荐控制方式汇总表。通过合理设置价格确定日期控制,企业可以确保采购价格准确性,满足各种复杂业务场景下价格管理的需求,从而提高采购管理效率和成本控制能力。

我小时候很黑的博客 738

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android修行手册-Chaquopy中opencv、numpy的初步应用

相比之下,使用Chaquopy集成Python和OpenCV库,可以简化Android开发中对OpenCV库的使用和集成,使得开发人员可以更加轻松地开发应用。使用Chaquopy,开发人员可以直接使用Python编写OpenCV的代码,避免Java语言本身的一些限制。

空名先生 1884

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android 手机的高级终端 Termux 安装使用、busybox、安卓 手机 web

手机已经 root安装 tsu,这是一个 su 的 Termux 版本,是一个真正的 root 权限,用来在 Termux上替代su,操作不慎可能对手机有安全风险,因为官方封装了,所以安装也很简单:安装 tsu:pkg install tsu -y切换到 root:tsu退出 root:exittsu切换 root 用户时会弹出 root 授权提示,给予其 root 权限即可。在管理员身份下输入 exit 可回到普通用户身份。

freeking101的博客 10万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

用 Go 开发鸿蒙 PC(2in1)二维码生成应用:从环境搭建到落地的完整实战

鸿蒙 PC(2in1 形态,如 MateBook 系列)与手机共用同一套 OHOS 应用模型:UI 用 ArkTS,原生能力走 NAPI。把应用声明为2in1设备类型即可在 PC 上运行。选 Go 做核心,是因为 Go 的成熟、生成 PNG 只要几行。怎么把 Go 编出来的东西塞进鸿蒙 PC 应用。这是全文重点。

DecorateCC的博客 5580

android人脸检测开发——基于opencv实现

参考资料: Android—基于OpenCV+Android实现人脸检测https://www.cnblogs.com/numen-fan/p/10009425.html

qq_18276949的博客 549

opencv4android 配置,配置OpenCV4Android开发环境

Archive for category OpenCV在Ubuntu14.10上要如何从源码编译到安装OpenCV这个计算机视觉库呢?下面我们一直来感受下要如何操作:1.安装必要工具:由于需要下载源码和编译源码,我们使用sudo apt-get install git cmake命令安装最基本的工具。2.编译安装OpenCV:a.下载源码:cd ~/git clone https://github...

weixin_30454067的博客 433

OpenCV入门教程之开发环境搭建(Android、C/C++、Python)

Android搭建OpenCV开发环境 自己写C/C++调用OpenCV实现 小编已经在gayhub开源了一个轮子,可直接使用:一个最简单、免搭建的Android OpenCV开源库[https://blog.youkuaiyun.com/confusing_awakening/article/details/113355609](https://blog.youkuaiyun.com/confusing_awakening/article/details/113355609) Windows C/C++搭建OpenCV开发环境

奋斗的IT青年 1404
上一篇: 用 Golang 开发 Android 应用(六)—— Camera 使用
下一篇: 用 Golang 开发 Android 应用 -- clang 编译环境配置
kaisoft
博客等级 码龄26年 39粉丝 10原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值