度大师OCR API文档

Lua API函数

度大师OCR图像文字识别

通过屏幕截图区域识别文字内容,集成度大师OCR高精度文字识别API

函数定义

function 度大师ocr(x1, y1, x2, y2)

函数说明

该函数用于对屏幕指定区域进行截图并调用度大师OCR API进行文字识别,返回识别结果。适用于自动化脚本中需要识别屏幕文字的场景。

工作流程

  1. 对屏幕坐标(x1,y1)到(x2,y2)的区域进行截图,保存为1.png
  2. 将截图转换为Base64格式
  3. 调用度大师OCR API发送识别请求
  4. 解析API响应并返回识别结果
  5. 请求失败时返回"未知"

参数详解

参数名 类型 是否必填 说明 示例
x1 number 必填 截图区域左上角x坐标 100
y1 number 必填 截图区域左上角y坐标 200
x2 number 必填 截图区域右下角x坐标 500
y2 number 必填 截图区域右下角y坐标 350

坐标说明

坐标系统以屏幕左上角为原点(0,0),x轴向右递增,y轴向下递增。
截图区域大小为 (x2 - x1) × (y2 - y1) 像素。

使用示例

以下是不同平台/语言调用度大师OCR API的示例代码,所有示例均遵循"截图→Base64编码→API请求→解析结果"的流程,可根据实际开发环境选择对应版本。

Lua 触动精灵调用示例
require("TSLib")
-- 度大师OCR函数定义
function 度大师ocr(x1, y1, x2, y2)
    -- 1. 截取屏幕指定区域并保存
    snapshot("1.png", x1, y1, x2, y2)
    
    -- 2. 加载所需库
    local sz = require("sz")
    local ts = require("ts")
    local http = require("szocket.http")
    local ltn12 = require("ltn12")
    
    -- 3. 将图片转换为Base64编码
    local post_data = imageBase64(userPath() .. "/res/1.png")
    
    -- 4. 发送HTTP请求到OCR API
    local response_body = {}
    local staus, code, header = http.request{
        url = "https://w.duds.cn/api/ocr_proxy.php?apikey=e7f0ed01c3ccf84a6ee25db8da89ffc61&mode=1",
        method = "POST",
        headers = {
            ["Content-Type"] = "application/json",
            ["Content-Length"] = #post_data,
        },
        source = ltn12.source.string(post_data),
        sink = ltn12.sink.table(response_body),
    }
    
    -- 5. 处理并返回识别结果
    local result = table.concat(response_body)
    if result ~= "" then
        return result  
    else
        return "未知"  -- 请求失败时返回默认值
    end
end

-- 调用示例:识别屏幕(100,200)到(500,350)区域的文字
local result = 度大师ocr(100, 200, 500, 350)
nLog("识别结果: " .. result)
Lua 懒人精灵调用示例
-- 度大师OCR函数定义
function 度大师OCR(x1, y1, x2, y2)
    -- 1. 截取屏幕指定区域并保存
    snapShot("/mnt/sdcard/test.png", x1, y1, x2, y2)
    
    -- 2. 加载所需库
    local https = require("ssl.https")
    local ltn12 = require("ltn12")
    
    -- 3. 将图片转换为Base64编码
    local post_data = getFileBase64("/mnt/sdcard/test.png")
    
    -- 4. 发送HTTP请求到OCR API
    local response_body = {}
    local headers = {
        ["Content-Type"] = "application/json",
        ["Content-Length"] = tostring(#post_data)
    }
    
    local res, code, response_headers = https.request{
        url = "https://w.duds.cn/api/ocr_proxy.php?apikey=3dbded15a9d5b35f550b50480a93bf1e&mode=1",
        method = "POST",
        headers = headers,
        source = ltn12.source.string(post_data),
        sink = ltn12.sink.table(response_body)
    }
    
    -- 5. 处理并返回识别结果
    local result = table.concat(response_body)
    if result ~= "" then
        return result
    else
        return "未知"  -- 请求失败时返回默认值
    end
end

-- 调用示例:识别屏幕(100,200)到(500,350)区域的文字
local result = 度大师OCR(100, 200, 500, 350)
print("识别结果: " .. result, 0)
易语言调用示例
.版本 2
.支持库 spec

.子程序 度大师OCR, 文本型, 公开
.参数 文件路径, 文本型, , 待识别的图片路径
.局部变量 网址, 文本型
.局部变量 方式, 整数型
.局部变量 结果, 文本型
.局部变量 提交数据, 文本型
.局部变量 协议头, 文本型
.局部变量 body_base64, 文本型

' 1. 将图片文件转换为Base64编码
body_base64 = 编码_BASE64编码 (读入文件 (文件路径))

' 2. 配置API请求参数
网址 = “https://w.duds.cn/api/ocr_proxy.php?apikey=3ad5df2297231478f4c251f90d3741cd&mode=1”
方式 = 1  ' 1表示POST请求
协议头 = “Content-Type: application/json”
提交数据 = body_base64

' 3. 发送请求并获取结果
结果 = UTF8到文本 (网页_访问 (网址, 方式, 提交数据, , , 协议头, ))

' 4. 返回处理结果
.如果 (结果 ≠ “”)
    调试输出 (结果)  ' 调试模式下输出结果
    返回 (结果)
.否则
    返回 (“没有识别内容”)
.如果结束

' 调用示例(在其他子程序中):
' 局部变量 识别结果, 文本型
' 识别结果 = 度大师OCR (“C:\test.png”)
' 信息框 (识别结果, 0, )

响应解析

API成功响应示例
{
    "code": 200,
    "data": {
        "text": "度大师OCR测试示例",
        "confidence": 0.98,
        "words_result": [
            {
                "words": "度大师OCR",
                "location": {
                    "left": 100,
                    "top": 200,
                    "width": 120,
                    "height": 30
                }
            },
            {
                "words": "测试示例",
                "location": {
                    "left": 230,
                    "top": 200,
                    "width": 100,
                    "height": 30
                }
            }
        ]
    },
    "msg": "success"
}

字段说明

  • code

    状态码:200表示成功,其他值表示失败

  • data

    识别结果数据

  • text

    识别出的完整文本内容

  • confidence

    整体识别置信度,范围0-1

  • words_result

    按行识别的结果列表

  • words

    单行识别的文本

  • location

    文字在图片中的位置信息

  • msg

    状态信息描述

错误处理

网络错误

当网络连接失败时,函数会返回"未知"字符串

API返回错误

当API返回非200状态码时,返回原始响应内容

建议处理方式

在调用函数后,建议检查返回结果格式是否符合预期
可以通过json解析判断是否包含"code"字段

计费说明

免费版

适合个人开发者测试使用

  • 每月1000次调用
  • 识别速度≤0.1秒/次
  • 仅支持中文简体
  • 无批量处理
  • 无技术支持
¥0 /月
推荐

专业版

适合企业用户和专业开发者

  • 每月50,000次调用
  • 识别速度≤0.05秒/次
  • 支持多语言
  • 支持批量处理
  • 工作日技术支持
¥39 /月

企业版

适合大型企业和高并发场景

  • 每月1,000,000次调用
  • 识别速度≤0.03秒/次
  • 支持全语言
  • 高级批量处理API
  • 7×24小时技术支持
¥299 /月

识别精度统计