简介:本文详细讲解易语言调用百度文字识别API的全流程,包含环境配置、核心代码实现、错误处理及优化建议,助力开发者快速实现图像转文本功能。
在数字化转型浪潮中,OCR(光学字符识别)技术已成为企业处理非结构化数据的关键工具。百度文字识别API凭借其高精度、多语言支持和丰富的识别场景(如通用文字、身份证、营业执照等),成为开发者首选的云服务之一。易语言作为国产可视化编程语言,在中小企业自动化、快速开发领域具有独特优势。将两者结合,可实现”图像采集→云端识别→本地处理”的高效工作流。
典型应用场景包括:
登录百度智能云控制台,完成以下步骤:
API Key和Secret KeyAccess Token获取地址(通常为https://aip.baidubce.com/oauth/2.0/token)建议先使用Postman测试API调用,确认:
Content-Type: application/x-www-form-urlencodedimage字段需Base64编码)words_result数组)
.版本 2.支持库 eAPI.子程序 获取AccessToken, 文本型.参数 API_Key, 文本型.参数 Secret_Key, 文本型.局部变量 URL, 文本型.局部变量 返回数据, 文本型.局部变量 JSON, 对象型URL = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + API_Key + "&client_secret=" + Secret_Key返回数据 = HTTP_取网页源码 (URL, 真, "", "")JSON.置入 (返回数据)返回 (JSON.取数据文本 ("access_token"))
.版本 2.支持库 eAPI.子程序 图片转Base64, 文本型.参数 图片路径, 文本型.局部变量 文件流, 字节集.局部变量 Base64, 文本型文件流 = 读入文件 (图片路径)Base64 = 到Base64文本 (文件流)返回 ("data:image/jpeg;base64," + Base64) '注意添加前缀
.版本 2.支持库 eAPI.子程序 百度OCR识别, 文本型, 逻辑型.参数 图片路径, 文本型.参数 API_Key, 文本型.参数 Secret_Key, 文本型.参数 识别结果, 文本型, 传址.局部变量 Token, 文本型.局部变量 URL, 文本型.局部变量 Base64, 文本型.局部变量 请求数据, 文本型.局部变量 返回数据, 文本型.局部变量 JSON, 对象型.局部变量 数组, 对象型.局部变量 i, 整数型.局部变量 临时文本, 文本型Token = 获取AccessToken (API_Key, Secret_Key)如果 (Token = "")识别结果 = "获取Token失败"返回 (假)结束Base64 = 图片转Base64 (图片路径)URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" + Token请求数据 = "image=" + Base64返回数据 = HTTP_POST请求 (URL, 请求数据, "application/x-www-form-urlencoded", "", "")JSON.置入 (返回数据)如果 (JSON.取数据文本 ("error_code") ≠ "")识别结果 = "API错误:" + JSON.取数据文本 ("error_msg")返回 (假)结束数组 = JSON.取数据对象 ("words_result")识别结果 = "".计次循环首 (数组.取成员数 (), i)临时文本 = 数组.取数据对象 (i).取数据文本 ("words")识别结果 = 识别结果 + 临时文本 + " ".计次循环尾 ()返回 (真)
.子程序 批量识别, 文本型型.参数 图片路径数组, 文本型型.参数 API_Key, 文本型.参数 Secret_Key, 文本型.局部变量 结果数组, 文本型型.局部变量 i, 整数型.局部变量 单个结果, 文本型.局部变量 成功标志, 逻辑型.计次循环首 (取数组成员数 (图片路径数组), i)成功标志 = 百度OCR识别 (图片路径数组 [i], API_Key, Secret_Key, 单个结果)如果 (成功标志)加入成员 (结果数组, 单个结果)否则加入成员 (结果数组, "识别失败:" + 单个结果)结束.计次循环尾 ()返回 (结果数组)
.子程序 解析识别结果, 逻辑型.参数 JSON文本, 文本型.参数 结构化数据, 对象型, 传址.局部变量 JSON, 对象型.局部变量 数组, 对象型.局部变量 i, 整数型.局部变量 位置, 对象型.局部变量 文字项, 对象型JSON.置入 (JSON文本)如果 (JSON.取数据文本 ("error_code") ≠ "")返回 (假)结束数组 = JSON.取数据对象 ("words_result")结构化数据.创建 ().计次循环首 (数组.取成员数 (), i)文字项 = 数组.取数据对象 (i)位置 = 文字项.取数据对象 ("location")结构化数据.置属性 ("文字_" + 到文本 (i), 文字项.取数据文本 ("words"))结构化数据.置属性 ("位置X_" + 到文本 (i), 位置.取数据数值 ("left"))结构化数据.置属性 ("位置Y_" + 到文本 (i), 位置.取数据数值 ("top")).计次循环尾 ()返回 (真)
API Key和Secret Key是否匹配
.版本 2.支持库 eAPI.程序集 百度OCR示例.程序集变量 API_Key, 文本型.程序集变量 Secret_Key, 文本型.子程序 __启动窗口_创建完毕API_Key = "您的API_Key"Secret_Key = "您的Secret_Key".子程序 _按钮_识别_被单击.局部变量 结果, 文本型.局部变量 成功, 逻辑型成功 = 百度OCR识别 ("C:\test.jpg", API_Key, Secret_Key, 结果)如果 (成功)信息框 ("识别结果:" + 结果, 0, , )否则信息框 ("识别失败:" + 结果, 0, , )结束
通过以上技术实现,开发者可在易语言环境中快速集成百度文字识别能力。建议在实际应用中增加日志记录、异常重试等机制,构建更稳健的OCR解决方案。对于高频使用场景,可考虑购买百度云的预付费套餐以降低成本。