鸿蒙HarmonyOS开发实战—AI功能开发(二维码生成及文字识别

Kafka面试题 2024-06-29 08:31:01 阅读 86

调用VisionManager.init()方法,将此工程的context和已经定义的connectionCallback回调作为入参,建立与能力引擎的连接。context应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。

int result = VisionManager.init(context, connectionCallback);

复制

在收到onServiceConnect回调连接服务成功后,实例化ITextDetector接口,将此工程的context作为入参。

ITextDetector textDetector = VisionManager.getTextDetector(context);

复制

实例化VisionImage对象image,并传入待检测图片pixelMap。

VisionImage image = VisionImage.fromPixelMap(pixelMap);

复制

实例化Text对象text,该对象在同步模式下用于存放调用textDetector.detect()方法的结果返回码及文字识别结果。

Text text = new Text();

复制

(可选) 定义VisionCallback

回调。

VisionCallback

callback= new VisionCallback

() {

@Override

public void onResult(Text text) {

// 对正确获得文字识别结果进行处理。

}

@Override

public void onError(int i) {

// 处理错误返回码。

}

@Override

public void onProcessing(float v) {

// 返回处理进度。

}

};

复制

说明

在异步模式下,该类的onResult()方法用于获得文字识别结果Text;onError()方法用于处理错误返回码;onProcessing()方法用于返回处理进度,目前没有实现此接口的功能。同步与异步模式区别在于detect()的最后一个参数VisionCallback

是否为空。若非空则为异步模式。此时会忽略自定义的Text输入(效果与传入null相同),接口调用结果一律从VisionCallback

获得,自定义的Text输入不做更新。

通过TextConfiguration配置textDetector()方法的运行参数,可选择识别场景、语言类型、调用模式等。跨进程模式(MODE_OUT)下调用方与能力引擎处于不同进程;同进程模式(MODE_IN)下,能力引擎在调用方进程中实例化,调用方通过反射的方式调用引擎里的通用文字识别能力。以聚焦通用文字识别,同进程英文语种检测为例:

TextConfiguration.Builder builder = new TextConfiguration.Builder();

builder.setProcessMode(VisionConfiguration.MODE_IN);

builder.setDetectType(TextDetectType.TYPE_TEXT_DETECT_FOCUS_SHOOT);

builder.setLanguage(TextConfiguration.ENGLISH);

TextConfiguration config = builder.build();

textDetector.setVisionConfiguration(config);

(可选)调用ITextDetector的prepare()方法。

result = textDetector.prepare();

说明 如果返回的result不为0,说明当前OCR能力准备失败,需要处理错误,不再执行之后的动作。在detect()方法中会首先调用prepare()启动引擎,如果引擎已经启动则不会再次启动。

调用ITextDetector的detect()方法。

result = textDetector.detect(image, text, null); // 同步

或者

result = textDetector.detect(image, null, visionCallback); // 异步

说明

同步模式调用完成时,该函数立即返回结果码;异步模式调用请求发送成功时,该函数返回结果码700。如果返回其他的结果码,说明异步调用请求不成功,需要先处理错误,此时回调函数不会被调用。如果异步模式调用请求发送成功,则OCR完成后,相应的回调函数会被自动调用。

如果onResult()回调被调用,说明OCR检测识别成功,相当于同步模式结果码为0的情况。如果onError()方法被调用,则说明OCR发生了错误,具体的调用结果码将由onError()的参数接收。

结果码定义如下表:

结果码 说明
0 成功
-1 未知错误
-2 不支持的功能或接口
-3 内存分配失败或创建对象失败
-4 所需库加载失败
-10 引擎开关已经关闭
101 失败
102 超时
200 输入参数不合法(图片尺寸错误)
201 输入参数不合法(为空)
210 输入参数合法
500 服务绑定异常
521 服务绑定异常断开
522 服务已连接
600 模型文件异常
601 模型文件不存在
602 模型加载失败
700 异步调用请求发送成功
1001 神经网络处理单元错误

调用ITextDetector的release()方法,释放资源。调用pixelMap的release()方法,释放图片内存。

textDetector.release();

if (pixelMap != null) {

pixelMap.release();

pixelMap = null;

}

说明 不再使用通用文字识别能力时,调用release()方法释放资源。

调用VisionManager.destroy()方法,断开与能力引擎的连接。

VisionManager.destroy();


最后,为了能让大家更好的去学习提升鸿蒙 (Harmony OS) 开发技术,小编连夜整理了一份30个G纯血版学习资料(含视频电子书学习文档等)以及一份在Github上持续爆火霸榜的《纯血版华为鸿蒙 (Harmony OS)开发手册》(共计890页),希望对大家有所帮助。

纯血版鸿蒙 HarmonyOS 4.0 视频学习资料

需要以上视频学习资料小伙伴

请点击→纯血版全套鸿蒙HarmonyOS学习资料


《纯血版华为鸿蒙 (Harmony OS)开发手册》

这份手册涵盖了当前鸿蒙 (Harmony OS) 开发技术必掌握的核心知识点

纯血版鸿蒙 (Harmony OS)开发手册部分精彩内容

HarmonyOS 概念:

系统定义技术架构技术特性系统安全

如何快速入门?

基本概念构建第一个ArkTS应用构建第一个JS应用……

开发基础知识:

应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言……

基于ArkTS 开发:

Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列.……

获取以上文中提到的这份纯血版鸿蒙 (Harmony OS) 开发资料的小伙伴

请点击→纯血版全套鸿蒙HarmonyOS学习资料


🚀写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。想要获取更多完整鸿蒙最新VIP学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)

img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)

[外链图片转存中…(img-Livs0cmu-1712812834366)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。