首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

鸿蒙系统文字识别和提取

  • 25-03-05 00:21
  • 4406
  • 7241
blog.csdn.net

原理介绍

鸿蒙系统的文字和提取主要是使用基础视觉服务下图是相关介绍

​

本文主要是使用基础视觉服务的的textRecognition方法,识别图片中的文字。

功能实现

  1. 配置页面的布局,并添加点击事件

    1. Image(this.chooseImage)
    2. .objectFit(ImageFit.Fill)
    3. .height('60%')
    4. Text(this.dataValues)
    5. .copyOption(CopyOptions.LocalDevice)
    6. .height('15%')
    7. .margin(10)
    8. .width('60%')
    9. Button('选择图片')
    10. .type(ButtonType.Capsule)
    11. .fontColor(Color.White)
    12. .alignSelf(ItemAlign.Center)
    13. .width('80%')
    14. .margin(10)
    15. .onClick(() => {
    16. // 拉起图库,获取图片资源
    17. this.selectImage();
    18. })
    19. Button('开始识别')
    20. .type(ButtonType.Capsule)
    21. .fontColor(Color.White)
    22. .alignSelf(ItemAlign.Center)
    23. .width('80%')
    24. .margin(10)
    25. .onClick(async () => {
    26. this.textRecognitionTest();
    27. })
    复制
  2. 通过图库获取图片资源

    1. private openPhoto(): Promise<string> {
    2. return new Promise<string>((resolve) => {
    3. let photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
    4. photoPicker.select({
    5. MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
    6. maxSelectNumber: 1
    7. }).then((res: photoAccessHelper.PhotoSelectResult) => {
    8. resolve(res.photoUris[0]);
    9. }).catch((err: BusinessError) => {
    10. hilog.error(0x0000, 'OCRDemo', `Failed to get photo image uri. Code:${err.code},message:${err.message}`);
    11. resolve('');
    12. })
    13. })
    14. }
    复制
  3. 将图片资源转换为需要的格式(PixelMap)

    1. private loadImage(name: string) {
    2. setTimeout(async () => {
    3. let fileSource = await fileIo.open(name, fileIo.OpenMode.READ_ONLY);
    4. this.imageSource = image.createImageSource(fileSource.fd);
    5. this.chooseImage = await this.imageSource.createPixelMap();
    6. }, 100)
    7. }
    复制
  4. 初始化相关资源

    1. //初始化textRecognition
    2. async aboutToAppear(): Promise<void> {
    3. const initResult = await textRecognition.init();
    4. hilog.info(0x0000, 'OCRDemo', `OCR service initialization result:${initResult}`);
    5. }
    6. //释放方法textRecognition
    7. async aboutToDisappear(): Promise<void> {
    8. await textRecognition.release();
    9. hilog.info(0x0000, 'OCRDemo', 'OCR service released successfully');
    10. }
    11. private async selectImage() {
    12. let uri = await this.openPhoto();
    13. if (uri === undefined) {
    14. hilog.error(0x0000, 'OCRDemo', "Failed to get uri.");
    15. return;
    16. }
    17. this.loadImage(uri);
    18. }
    复制

  5. 调用textRecognition的recognizeText方法识别文字,并处理识别结果

    1. private textRecognitionTest() {
    2. if (!this.chooseImage) {
    3. return;
    4. }
    5. // 实例化VisionInfo对象,并传入待检测图片的PixelMap
    6. let visionInfo: textRecognition.VisionInfo = {
    7. pixelMap: this.chooseImage
    8. };
    9. //配置通用文本识别的配置项TextRecognitionConfiguration,用于配置是否支持朝向检测。
    10. let textConfiguration: textRecognition.TextRecognitionConfiguration = {
    11. isDirectionDetectionSupported: false
    12. };
    13. textRecognition.recognizeText(visionInfo, textConfiguration)
    14. .then((data: textRecognition.TextRecognitionResult) => {
    15. // 识别成功,获取对应的结果
    16. let recognitionString = JSON.stringify(data);
    17. hilog.info(0x0000, 'OCRDemo', `Succeeded in recognizing text:${recognitionString}`);
    18. // 将结果更新到Text中显示
    19. this.dataValues = data.value;
    20. })
    21. .catch((error: BusinessError) => {
    22. hilog.error(0x0000, 'OCRDemo', `Failed to recognize text. Code: ${error.code}, message: ${error.message}`);
    23. this.dataValues = `Error: ${error.message}`;
    24. });
    25. }
注:本文转载自blog.csdn.net的weixin_39018792的文章"https://blog.csdn.net/weixin_39018792/article/details/144674030"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

135
HarmonyOS
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top