跳到主要内容

zm.OcrBaiDuReceipt 百度云通用票据识别

🎯功能

识别医疗票据/发票/的士票/保险保单等票据类图片中的所有文字, 内置固定的请求URL, 除图片参数外的请求参数通过 zm.OcrBaiDuInit 设置百度云文字识别 设置, 具体内容见百度云文字识别API文档

📜语法

结果 = zm.OcrBaiDuReceipt([x1, y1, x2, y2][, 图片路径][, 返回json])

📥参数

参数数据类型解释
x1数值型可选, 识别范围的左上角x坐标, 与图片路径参数二选一
y1数值型可选, 识别范围的左上角y坐标, 与图片路径参数二选一
x2数值型可选, 识别范围的右下角x坐标, 与图片路径参数二选一
y2数值型可选, 识别范围的右下角y坐标, 与图片路径参数二选一
图片路径字符串可选, 要识别内容的图片本地路径, 与范围参数二选一
返回json可选, 数组变量, 一般不建议填写, 以表的形式返回原生结果, 详见百度云文字识别API文档的返回说明内容

📤返回

数组 , 返回优化后的识别结果, 格式类似于 {"345911220","紫猫", ...} , 详细请自行遍历查看, 失败返回null

💡示例

Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次

Dim ret, t()

//例子1: 设置key
If Not zm.OcrBaiDuInit("请修改成你的API Key", "请修改成你的Secret Key") Then
TracePrint "初始化设置百度云识别失败"
EndScript
End If
//全屏识别发票
ret = zm.OcrBaiDuReceipt(0, 0, 0, 0)
If ret then
For i = 0 to UBound(ret)
TracePrint ret(i)
Next
//更多输出请自行遍历
Else
TracePrint "识别失败"
End If

//例子2: 在例子1的基础上, 增加开启检测朝向功能
Dim args = {"detect_direction":"true"}
zm.OcrBaiDuInit args
//本地图片识别的士票
ret = zm.OcrBaiDuReceipt("/sdcard/紫猫的士票.png", t)
TracePrint "识别结果:", zm.VarInfo(ret)
TracePrint "原生返回值:", zm.VarInfo(t)

📘备注

  • 本命令调用百度云的通用文字识别功能, 此命令的任何充值消费行为均与紫猫编程学园无关
  • 请自己注册帐号, 试用后再决定是否充值使用
  • 后台创建步骤:
    • 前往百度云AI官网注册并登录
    • 打开文字识别控制台
    • 点击创建应用, 并输入应用名称与应用描述
    • 查看刚刚创建的应用, 就可以查到API Key和Secret Key
  • 本命令通过修改 zm.OcrBaiDuInit 设置百度云文字识别 的请求参数, 实现更多功能, 详见详见百度云文字识别API文档的请求说明内容
  • V1.1747: 加入命令
  • V3.1849: 支持超级缩放