Skip to content

API: wingman.ocr ​

OCR 模块,提供基于 Tesseract 引擎的文字识别功能。

注意

此模块需要安装 Tesseract。未安装时返回存根实现。

模块概述 ​

ocr 模块提供文字识别功能:

  • 文字识别 - 识别指定区域的文字
  • 简化识别 - 直接返回识别文本

识别文字 ​

recognize(region) / recognize(region) ​

说明:识别指定区域的文字,返回详细结果。

函数签名:

python
recognize(region: dict) -> dict
lua
recognize(region: table) -> table

参数:

  • region - 必传,识别区域 {x: number, y: number, width: number, height: number}

返回:

  • 识别结果对象:
    • success / success - 是否成功
    • text / text - 识别的文本
    • confidence / confidence - 置信度(0-100 整数百分比)
python
from wingman import ocr

# 识别指定区域
result = ocr.recognize({"x": 100, "y": 100, "width": 200, "height": 50})
if result['success']:
    print(f"识别成功: {result['text']}")
    print(f"置信度: {result['confidence']}")

简化版识别 ​

recognize_text(region) / recognizeText(region) ​

说明:简化版文字识别,直接返回文本。

函数签名:

python
recognize_text(region: dict) -> str | None
lua
recognizeText(region: table) -> string | nil

参数:

  • region - 必传,识别区域 {x: number, y: number, width: number, height: number}

返回:

  • 识别的文本,失败返回 None/nil
python
from wingman import ocr

text = ocr.recognize_text({"x": 0, "y": 0, "width": 300, "height": 100})
if text:
    print(f"识别到: {text}")

可用接口 ​

Python 函数Lua 函数说明参数
recognize(region)recognize(region)识别文字region: 识别区域(必传)
返回: 结果对象
recognize_text(region)recognizeText(region)简化识别region: 识别区域(必传)
返回: 文本或None/nil

语言包配置 ​

Tesseract 语言包需要单独下载。

下载语言包 ​

从 tessdata 下载所需的 .traineddata 文件:

语言文件名
英文eng.traineddata
简体中文chi_sim.traineddata
繁体中文chi_tra.traineddata
日文jpn.traineddata
韩文kor.traineddata

安装语言包 ​

将下载的 .traineddata 文件放到 Tesseract 的 tessdata 目录:

Windows (vcpkg 安装):

<vcpkg-root>\installed\x64-windows\share\tesseract\tessdata\

编译选项 ​

OCR 功能需要安装 Tesseract:

bash
vcpkg install tesseract

如不需要 OCR 功能,可在编译时禁用:

bash
cmake -DWINGMAN_ENABLE_OCR=OFF ..

禁用后将使用 stub 实现,recognize() 始终返回空结果。