小丑鼠

JokyMouse 开发者文档

小丑鼠 Latest

jokymouse.ocr API

jokymouse.ocr 模块通过 require("jokymouse.ocr") 加载,提供屏幕识字与文字查找能力。

local ocr = require("jokymouse.ocr")

可用函数

函数签名说明
readocr.read(opts?)读取整屏或指定区域文字
find_textocr.find_text(text, opts?)查找指定文字,找到时返回最佳命中行

read

local ocr = require("jokymouse.ocr")

local result = ocr.read({
  region = { x = 100, y = 120, width = 500, height = 180 }
})

print(result.text)
for _, line in ipairs(result.lines) do
  print(line)
end

opts

字段类型默认值说明
regiontablenil限定识字区域
trimbooleantrue是否去掉每行前后空白,并跳过空行

region 结构:

{
  x = 100,
  y = 120,
  width = 500,
  height = 180
}

返回结构

{
  text = "立即开始\n奖励中心",
  lines = {
    {
      text = "立即开始",
      score = 0.98,
      x = 320,
      y = 540,
      width = 88,
      height = 24
    }
  }
}

find_text

local ocr = require("jokymouse.ocr")

local hit = ocr.find_text("立即开始", {
  region = { x = 100, y = 120, width = 500, height = 180 },
  partial = false
})

if hit then
  print(hit)
end

opts

find_text 继承 read(opts?) 的全部字段,并额外支持:

字段类型默认值说明
partialbooleanfalse是否允许包含匹配
case_sensitivebooleanfalse是否区分大小写

返回结构

找到时返回单行结果:

{
  text = "立即开始",
  score = 0.98,
  x = 320,
  y = 540,
  width = 88,
  height = 24
}

未找到时返回 nil

模型文件

当前运行时默认会在以下位置寻找 OCR 模型目录 ocr/

  • 打包后的 app resources
  • 开发态的 src-tauri/resources/ocr
  • 当前工作目录下的 resources/ocr

当前预期文件名:

  • PP-OCRv5_mobile_det.mnn
  • PP-OCRv5_mobile_rec.mnn
  • ppocr_keys_v5.txt

如果模型未准备好,运行时会直接报出缺失路径和文件名,方便排查。

说明

  • 第一版提供读取文字与查找文字能力,不含点击封装。
  • region 强烈推荐和 screen.find_image_one(...) 配合使用,先缩小区域再 OCR,速度和准确率都会更稳。
  • 如果未授予屏幕录制权限,截图阶段会直接失败。