Skip to content

OCR 文字识别

系统内置以下两种本地文字识别(OCR)引擎:

  1. Paddle OCR (已升级至 PP-OCR v5):基于 NCNN 引擎,无需网络,完全本地离线识别,精度极高,且针对多线程进行了性能和崩溃隔离优化。
  2. Google ML Kit OCR:基于 Google 机器学习套件,速度快、稳定性高,支持多国语言。

Paddle OCR (PP-OCR v5)

paddle.ocr(img)

  • img {Image} 要识别的图片对象。
  • 返回:{Array} 识别结果数组。每个元素包含识别文本、置信度及坐标区域。

返回结果字段说明:

  • text {String} 识别到的整行文本(同 words)。
  • confidence {Number} 识别置信度(0 ~ 1)。
  • bounds {Rect} 文本所在的矩形区域,包含 left, top, right, bottom 属性。
js
let img = captureScreen();
let result = paddle.ocr(img);
for (let i = 0; i < result.length; i++) {
    let item = result[i];
    log("识别文本: " + item.text + " 置信度: " + item.confidence);
    log("坐标: " + item.bounds);
}

paddle.ocrText(img)

  • img {Image} 要识别的图片对象。
  • 返回:{Array} 识别出的所有文本行组成的字符串数组。

仅获取识别出的文字内容,不包含坐标与置信度:

js
let img = captureScreen();
let texts = paddle.ocrText(img);
log("所有识别到的文字: " + JSON.stringify(texts));
// 输出类似: ["微信", "通讯录", "发现", "我"]

paddle.release()

  • 释放底层 Native 资源(在当前版本为控制台单例自动管理,调用此方法为空操作)。

Google ML Kit OCR

使用 Google ML Kit 实现的文字识别,运行效率高,支持多种语言。

gmlkit.ocr(img, language)

  • img {Image} 要识别的图片对象。
  • language {String} 识别的目标语言,可选值:
    • "zh":中文(默认支持)
    • "la":拉丁语(英文等)
    • "ja":日语
    • "ko":韩语
  • 返回:{Object} 嵌套的结构化识别结果 JSON 对象。

返回对象结构 (GoogleMLKitOcrResult):

  • level {Number} 节点层级(0: 全文, 1: 文本块 Block, 2: 文本行 Line, 3: 字符 Element)。
  • text {String} 当前层级的文字内容。
  • bounds {Rect} 当前层级文字的包围盒矩形区域。
  • confidence {Number} 置信度(仅在 Line 和 Element 层级有效)。
  • children {Array} 子层级元素数组。
js
// 识别屏幕截图中的中文
let img = captureScreen();
let result = gmlkit.ocr(img, "zh");
log("全文内容: " + result.text);

// 遍历第一层文本块
if (result.children) {
    result.children.forEach(block => {
        log("Block 文本: " + block.text + " 坐标: " + block.bounds);
    });
}

gmlkit.ocrText(img, language)

  • img {Image} 要识别的图片对象。
  • language {String} 识别的目标语言(如 "zh")。
  • 返回:{String} 识别到的整篇纯文本字符串。
js
let img = captureScreen();
let allText = gmlkit.ocrText(img, "zh");
log("识别到的纯文本内容:\n" + allText);