ocr - 文字识别
2022/10/22约 802 字大约 3 分钟
ocr 模块提供了文字识别(OCR)功能。使用此模块需要先在 Auto.js Pro 的插件商店中下载官方 OCR 插件。
OCR 对象创建后,在不使用时需要调用 release() 方法释放资源,以释放内存和计算资源。
目录
类
接口
类型别名
函数
类型别名
CPUPowerMode
Ƭ CPUPowerMode: "LITE_POWER_HIGH" | "LITE_POWER_LOW" | "LITE_POWER_FULL" | "LITE_POWER_NO_BIND" | "LITE_POWER_RAND_HIGH" | "LITE_POWER_RAND_LOW"
CPU 模式。用于控制 OCR 识别时的 CPU 使用策略。
LITE_POWER_HIGH- 绑定大核运行模式。如果 ARM CPU 支持 big.LITTLE,则优先使用并绑定 Big cluster,如果设置的线程数大于大核数量,则会将线程数自动缩放到大核数量。如果系统不存在大核或者在一些手机的低电量情况下会出现绑核失败,如果失败则进入不绑核模式。LITE_POWER_LOW- 绑定小核运行模式。如果 ARM CPU 支持 big.LITTLE,则优先使用并绑定 Little cluster,如果设置的线程数大于小核数量,则会将线程数自动缩放到小核数量。如果找不到小核,则自动进入不绑核模式。LITE_POWER_FULL- 大小核混用模式。线程数可以大于大核数量,当线程数大于核心数量时,则会自动将线程数缩放到核心数量。LITE_POWER_NO_BIND- 不绑核运行模式(推荐)。系统根据负载自动调度任务到空闲的 CPU 核心上。LITE_POWER_RAND_HIGH- 轮流绑定大核模式。如果 Big cluster 有多个核心,则每预测 10 次后切换绑定到下一个核心。LITE_POWER_RAND_LOW- 轮流绑定小核模式。如果 Little cluster 有多个核心,则每预测 10 次后切换绑定到下一个核心。
函数
createOCR
▸ createOCR(options?): Promise<OCR>
根据给定选项,创建 OCR 对象,可用于文字识别。一般不必自定义参数,使用 createOCR 即可创建有效的 OCR 对象。
示例
"nodejs";
const { createOCR } = require("ocr");
const { requestScreenCapture } = require("media_projection");
const { showToast } = require("toast");
const { delay } = require("lang");
async function main() {
// 创建OCR对象,需要先在Auto.js Pro的插件商店中下载官方OCR插件。
const ocr = await createOCR({
models: "default", // 指定精度相对高但速度较慢的模型
});
const capturer = await requestScreenCapture();
for (let i = 0; i < 5; i++) {
const capture = await capturer.nextImage();
// 检测截图文字并计算检测时间,首次检测的耗时比较长
// 检测时间取决于图片大小、内容、文字数量
// 可通过调整createOCR的线程、CPU模式等参数调整检测效率
const start = Date.now();
const result = await ocr.detect(capture);
const end = Date.now();
console.log(result);
showToast(`第${i + 1}次检测: ${end - start}ms`);
await delay(3000);
}
ocr.release();
}
main().catch(console.error);参数
| 名称 | 类型 | 描述 |
|---|---|---|
options | CreateOCROptions | 创建 OCR 对象的选项 |
返回值
Promise<OCR>
返回一个 Promise,resolve 时返回 OCR 对象。
