触摸精灵iOS版纯离线本地文字识别插件

时间:2024-05-31 17:22:07

目的

        触摸精灵iOS是一款可以模拟鼠标和键盘操作的自动化工具。它可以帮助用户自动完成一些重复的、繁琐的任务,节省大量人工操作的时间。但触摸精灵的图色功能比较单一,无法识别屏幕上的图像,根据图像的变化自动执行相应的操作。本篇文章主要讲解下触动精灵纯本地离线文字识别插件如何使用和集成。

准备工作

1、下载触摸精灵脚本编辑器开发工具vscode: Download Visual Studio Code - Mac, Linux, Windows

2、安装相应的插件,官网有详细介绍:开发工具 - 开发文档 (touchelf.net)

3、下载纯本地离线文字识别插件

插件集成

1、在vscode中打开TomatoOCRDemo项目:

2、将ios目录下的TomatoOCR.so文件,添加到工程res目录中

3、在main.lua中进行编辑

-- ********************************************************************************************
-- ********欢迎使用TomatoOCR文字识别插件,加入群【754442166、469843332】可获取最新版本!!!************
-- ********************************************************************************************


local tomatoOCR = require("TomatoOCRCore")

function main()

    -- 初始化-ios
    tomatoOCR.init("ios")

    local rec_type = "ch-3.0";
    -- 注:ch、ch-2.0、ch-3.0版可切换使用,对部分场景可适当调整
    -- "ch":普通中英文识别,1.0版模型
    -- "ch-2.0":普通中英文识别,2.0版模型
    -- "ch-3.0":普通中英文识别,3.0版模型
    -- "cht":繁体,"japan":日语,"korean":韩语
    tomatoOCR.setRecType(rec_type)


    tomatoOCR.setDetBoxType("rect")  -- 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本
    tomatoOCR.setDetUnclipRatio(1.9)  -- 调整检测模型检测文本参数 - 默认1.9: 值范围1.6-2.5之间
    tomatoOCR.setRecScoreThreshold(0.3)  -- 识别得分过滤 - 默认0.1,值范围0.1-0.9之间
    tomatoOCR.setReturnType("json")
    -- 返回类型 - 默认"json": 包含得分、坐标和文字;
    -- "text":纯文字;
    -- "num":纯数字;
    -- 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容

    local type = 3;
    -- type 可传可不传
    -- type=0 : 只检测
    -- type=1 : 方向分类 + 识别
    -- type=2 : 只识别
    -- type=3 : 检测 + 识别

    -- 只检测文字位置:type=0
    -- 全屏识别: type=3或者不传type
    -- 截取单行文字识别:type=1或者type=2


    path = script.workingDir()
    img = path.."/res/test.jpg"
    screen.snapshot(img, 0, 0, 720, 1280)
    local res = tomatoOCR.ocrFile(img, type)
    sys.log(res)

    -- 找字并点击方法
    -- 返回"待在的文字"的中心点坐标
    tomatoOCR.findTapPoint("待在的文字")

    -- 释放
    tomatoOCR.release()

end

4、点击右上角的远程运行

运行结果:

以上就是所有的运行情况。

完毕

        相对来说,在触摸精灵进行插件开发还是比较方便的,官方提供的lua语言功能很全,原生插件集成可以采用直连的方式,但相比部署在服务器上,还是减少了很多资源占用情况,更加方便便捷。