Skip to content

OCR识别

使用设备端的 GPU 加速技术识别屏幕指定区域的文字内容,支持多种语言识别。

💡 提示

系统会自动识别手机语言,无需手动指定语言类型。

为什么不内置第三方OCR?查看 OCR指南 了解详情。

⚠️ 重要限制

由于 iOS 系统对后台应用有严格的内存限制,内置OCR不适合进行大面积的文档扫描工作

识别区域过大或频繁识别大区域可能导致:

  • 内存占用超限
  • 投屏服务崩溃断开

建议:

  • ✅ 适用:识别按钮、标题、短文本等小区域文字
  • ❌不适用:整页文档扫描、大段落识别、PDF文字提取等

如需进行文档扫描或大面积文字识别,请使用 屏幕推送 接口配合电脑端的OCR服务。

接口说明

接口类型

ocr

参数

参数名类型必填说明
deviceIdstring设备ID
rectarray识别区域 [x1, y1, x2, y2]

返回值

返回一个文本块数组,每个文本块包含:

javascript
[
    {
        text: "识别到的文字",          // 识别的文字内容
        boundingBox: {                  // 文字边界框
            x: 100,                     // 左上角X坐标
            y: 100,                     // 左上角Y坐标
            width: 200,                 // 宽度
            height: 50                  // 高度
        },
        confidence: 0.95,               // 识别置信度 (0-1)
        x: 200,                         // 文字中心点X坐标
        y: 125                          // 文字中心点Y坐标
    },
    // ... 更多文本块
]

基本使用

javascript
// 识别屏幕指定区域的文字
const results = await apiInvoke('ocr', {
    deviceId: 'P72578581E07',
    rect: [100, 100, 500, 200]    // 识别区域:左上角(100,100)到右下角(500,200)
});

// 遍历所有识别到的文本块
results.forEach(item => {
    console.log(`文字: ${item.text}`);
    console.log(`位置: (${item.x}, ${item.y})`);
    console.log(`置信度: ${item.confidence}`);
});

// 获取所有文字内容
const allText = results.map(item => item.text).join(' ');
console.log('完整文本:', allText);

功能说明

识别区域

rect 参数定义识别区域,格式为 [x1, y1, x2, y2]

  • x1, y1 - 区域左上角坐标
  • x2, y2 - 区域右下角坐标

区域设置建议:

  • 区域应包含完整的文字内容
  • 避免包含过多背景和干扰元素
  • 区域越小,识别速度越快,内存占用越少
  • 确保区域在屏幕范围内
  • 避免识别过大区域(建议单次识别区域不超过屏幕的1/2)

语言支持

系统会自动检测文字语言,包括但不限于 18+ 种主流语言

使用场景

💡 适用场景

内置OCR适合识别:

  • ✅ UI界面的按钮文字、标题、提示
  • ✅ 短消息内容、通知文本
  • ✅ 游戏内的文字提示、数字信息
  • ✅ 表单字段、输入框内容

不适合:

  • ❌ 整页文档扫描
  • ❌ 长篇文章识别
  • ❌ PDF文字提取
  • ❌ 大面积连续文字识别

对于文档扫描等场景,建议使用 屏幕推送 接口,将图像发送到电脑端的OCR服务进行处理。

商务合作:try.catch@foxmail.com