ocr - 文字识别


ocr - 文字识别

ocr模块即光学文字识别,用于识别图片中的文字。该内置模块基于PaddleOCR实现,需要先在Auto.js Pro的插件商店中下载官方PaddleOCR插件才能使用。打包时插件可一并打包到apk中,无需单独安装插件。

另外,官方提供了另一个基于谷歌MLKit的OCR插件,参见官方MLKitOCR插件open in new window

本模块的主要函数是createOCRdetect

目录

接口

类型别名

函数

类型别名

CPUPowerMode

Ƭ CPUPowerMode: "LITE_POWER_HIGH" | "LITE_POWER_LOW" | "LITE_POWER_FULL" | "LITE_POWER_NO_BIND" | "LITE_POWER_RAND_HIGH" | "LITE_POWER_RAND_LOW"

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

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>