当前位置: 首页 > news >正文

简化文本处理流程,通用文字识别助力提升信息采集效率

随着信息技术的发展、移动设备使用的普及和全球化的商业需求,非结构化数据转换为结构化数据的需求日益增长,数字化成为信息存储和管理的主流趋势。在此背景下,OCR技术应运而生,该技术可以将图像中文本信息转化为计算机等设备可以使用的字符信息,成为现代信息处理的关键技术。

OCR技术丰富了移动设备的文本处理能力,自动化文档处理,减少手动输入,为用户提供了多样化的便捷服务,大幅提升效率,成为App中不可或缺的功能。用户可以通过简单的扫描将文档转换为电子文本,拍照获取及时外语翻译,自动提取证件信息以简化验证流程等。

HarmonyOS SDK 基础视觉服务(Core Vision Kit)提供了通用文字识别能力,该能力支持特定角度范围内的文本倾斜、拍摄角度倾斜、复杂光照条件以及复杂文本背景等场景的文字识别。目前支持中、英等10+语种的识别。

适用场景

适用于票据、卡证、表格、报刊、书籍等的图像文字识别。

支持文档翻拍和街景翻拍的文字检测与识别。

可集成至其他应用,扩展文字检测、识别功能,并基于识别结果提供翻译、搜索服务。

功能演示

开发步骤

1.在使用通用文字识别时,将实现文字识别的相关的类添加至工程。

import { textRecognition } from '@kit.CoreVisionKit';

2.通过图库获取图片资源,将图片转换为PixelMap。

private async selectImage() {let uri = await this.openPhoto();if (uri === undefined) {hilog.error(0x0000, 'OCRDemo', "Failed to get uri.");return;}this.loadImage(uri);
}private openPhoto(): Promise<string> {return new Promise<string>((resolve, reject) => {let photoPicker = new picker.PhotoViewPicker();photoPicker.select({MIMEType: picker.PhotoViewMIMETypes.IMAGE_TYPE,maxSelectNumber: 1}).then((res: picker.PhotoSelectResult) => {resolve(res.photoUris[0]);}).catch((err: BusinessError) => {hilog.error(0x0000, 'OCRDemo', `Failed to get photo image uri. code:${err.code},message:${err.message}`);resolve('');})})
}private loadImage(name: string) {setTimeout(async () => {let imageSource: image.ImageSource | undefined = undefined;let fileSource = await fileIo.open(name, fileIo.OpenMode.READ_ONLY);imageSource = image.createImageSource(fileSource.fd);this.chooseImage = await imageSource.createPixelMap();}, 100)
}

3.实例化VisionInfo对象,并传入待检测图片的PixelMap。

VisionInfo为待OCR检测识别的入参项,目前仅支持PixelMap类型的视觉信息。

let visionInfo: textRecognition.VisionInfo = {pixelMap: this.chooseImage
};

4.配置通用文本识别的配置项TextRecognitionConfiguration,用于配置是否支持朝向检测。

let textConfiguration: textRecognition.TextRecognitionConfiguration = {isDirectionDetectionSupported: false
};

5.调用textRecognition的recognizeText接口,对识别到的结果进行处理。

当调用成功时,返回结果码0;调用失败时,将返回对应错误码。

recognizeText接口提供了三种调用形式,当前以其中一种作为示例,其他方式可参考API文档。

textRecognition.recognizeText(visionInfo, textConfiguration, (error: BusinessError, data: textRecognition.TextRecognitionResult) => {if (error.code !== 0) {hilog.error(0x0000, 'OCRDemo', `Failed to recognize text. Code: ${error.code}, message: ${error.message}`);return;}// 识别成功,获取对应的结果let recognitionString = JSON.stringify(data);hilog.info(0x0000, 'OCRDemo', `Succeeded in recognizing text:${recognitionString}`);// 将结果更新到Text中显示this.dataValues = data.value;if(this.chooseImage && this.imageSource) {this.chooseImage.release();this.imageSource.release();}
});

了解更多详情>>

访问基础视觉服务联盟官网

获取通用文字识别服务开发指导文档

http://www.lryc.cn/news/424325.html

相关文章:

  • 【网络】TCP协议通信的重要策略——滑动窗口,快重传,流量控制,拥塞控制,延时应答
  • 极狐GitLab CI/CD 如何构建镜像并推送到 azure 镜像仓库?
  • Leetcode—1143. 最长公共子序列【中等】
  • ZBrush笔刷介绍
  • React+AntDesign做一个日历,展示节假日,节气,并且在某几个时间上添加活动备注
  • 排序算法之梳排序
  • ESP8266 创建TCP连接
  • OceanBase内存管理小窍门
  • 【问题解决】git status中文文件名乱码
  • 探索数据结构:AVL树的分析与实现
  • 使用 C++ 实现简单的插件系统
  • 使用Python创建省份城市地图选择器
  • 【Java 数据结构】Stack和Queue介绍
  • Docker基本语法
  • uniapp 对于scroll-view滑动和页面滑动的联动处理
  • opencv基础的图像操作
  • Java | Leetcode Java题解之第337题打家劫舍III
  • 本地查看的Git远程仓库分支与远程仓库分支数量不一致
  • opencv-python实战项目九:基于拉普拉斯金字塔的图像融合
  • 浅谈JDK
  • 爬虫案例3——爬取彩票双色球数据
  • C++ | Leetcode C++题解之第337题打家劫舍III
  • 软件架构设计师-UML知识导图
  • 在使用transformers和pytorch时出现的版本冲突的问题
  • uniapp粘贴板地址识别
  • C语言 | Leetcode C语言题解之第335题路径交叉
  • TypeScript学习第十三篇 - 泛型
  • 工业智能网关在汽车制造企业的应用价值及功能-天拓四方
  • LLM - 在服务器中使用 Ollama + OpenWebUI 部署最新大模型
  • 重启人生计划-积蓄星火