懒人精灵安卓版纯本地离线文字识别插件

news2024/11/15 4:35:14

目的

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

        目前懒人精灵推出的普通版和高级版,对应的文字识别插件也分普通版和高级版。

准备工作

1、下载懒人精灵手机助手开发工具:懒人精灵官网,网站中只能下载高级版的编辑器,普通版的编辑器需在官方群中获取。

        

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

  • 目前插件支持中英文、繁体字、日语、韩语识别;
  • 支持小图、区域图和单行文字识别,准确率高达99%;
  • 支持多种返回格式,json\文本\数字\自定义;
  • 支持增强版二值化;
  • 支持找字返回坐标并点击;
  • 超高的稳定性,速度快;
  • 不联网、不联网、不联网;

插件集成

普通版和高级版的用法大同小异,下面以高级版用法为例:

1、打开懒人精灵,新建项目,双击资源.rc文件,添加文字识别插件

下载插件后,先改名为TomatoOCR.apk

2、记事本打开调用说明文件,并拷贝到项目的lua文件中,

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

import('java.io.File')
import('java.lang.*')
import('java.util.Arrays')
import('android.content.Context')
import('android.hardware.Sensor')
import('android.hardware.SensorEvent')
import('android.hardware.SensorEventListener')
import('android.hardware.SensorManager')
import('com.nx.assist.lua.LuaEngine')

-- 推荐方式一,稳定;方式二,懒人精灵软件不怎么稳定,慎用,按方式一测试完成,可用方式二打包
-------------------------引入方式-------------------------
-- 方式一 根据实际情况选择适当的apk包,放在手机目录中,例子是放在了根目录并重命名为TomatoOCR
--local loader = LuaEngine.loadApk("/storage/emulated/0/TomatoOCR.apk")
-- 方式二 PC端左侧展开项目,找到资源目录,双击.rc文件,然后添加文件就可以了
local loader = LuaEngine.loadApk("TomatoOCR.apk")
-------------------------引入方式-------------------------

local OCR = loader.loadClass("com.tomato.ocr.lr.OCRApi")

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":韩语
local ocr = OCR.init(LuaEngine.getContext(), rec_type)

-- license从群中获取或者网盘中获取
local license = ""
local flag = ocr.setLicense(license);

-- ----------------------------注:以上代码全局只需写一次-------------------------------


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

-- ocr.setBinaryThresh(135) -- 二值化设定0-255,非必须,常规情况下不需要设置,可配合群中【测试应用.apk】使用


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

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

-- 注意:注意:注意:识别不到时,返回的是""空字符串,请加上 if result ~="" then
-- 例子一
snapShot("/mnt/sdcard/test.png",0,0,300,100)
local result1 = ocr.ocrFile("/mnt/sdcard/test.png", type)
printEx(result1);

-- 例子二
local bitmap = LuaEngine.snapShot(0,0,300,100)
local result2 = ocr.ocrBitmap(bitmap, type)
printEx(result2);

-- 找字返回坐标,没有找到字返回“”空字符串,返回的是“百度”的中心点坐标
local point = ocr.findTapPoint("百度")
if point ~="" then
    local json_point = jsonLib.decode(point)
    local center_x = json_point[1] + x1
    local center_y = json_point[2] + y1
end


-- 释放
ocr.release()

3、其中的方法说明如下

方法名说明
init初始化
setRecType

设置识别语言,默认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":韩语

setDetBoxType

调整检测模型检测文本参数-,默认"rect":

由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本

setDetUnclipRatio
调整检测模型检测文本参数,默认1.9:
值范围1.6-2.5之间,如果文字的检测框太小,可调整改参数,一般往大调整
setRecScoreThreshold
设置识别得分过滤,默认0.1:
值范围0.1-0.9之间
setReturnType
设置返回类型,默认"json",包含得分、坐标和文字;
"text":纯文字;
"num":纯数字;
自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容
setBinaryThresh
对图片进行二值化处理,非必须,正常情况下可以不用写
ocrFile

两个参数,图片路径和类型,一般类型传3:

type=-1 : 检测 + 方向分类 + 识别
type=0 : 只检测
type=1 : 方向分类 + 识别
type=2 : 只识别(单行识别)
type=3 : 检测 + 识别
只检测文字位置:type=0
全屏识别: type=3或者不传type
截取单行文字识别:type=1或者type=2

如果识别为不到时,返回的数据为“”字符串

findTapPoint

找字,返回传入字的中心点坐标,方便进行点击,找不到字时,返回[-1,-1]

release释放插件,只需要在停止脚本的时候调用

4、识别结果

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

注意:高级版需要将“脚本运行在最高权限环境中”的勾去掉

完毕

        相对来说,在懒人精灵进行插件开发还是比较困难的,需要会原生安卓开发,本地识别全屏会相对较慢,区域识别还是非常快,相比部署在服务器上,还可以减少了很多资源占用情况,更加方便便捷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1950309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nacos2.x作为配置中心和服务注册和发现以及springcloud使用

目录 一、nacos是什么 二、windows下安装配置nacos 1、准备 2、安装nacos 3、配置nacos 4、启动并且访问nacos 三、springcloud使用nacos作为配置中心 四、springcloud使用nacos进行服务注册与发现 五、springcloud使用nacos进行服务消费 六、nacos的一些高级配置 1…

IP地址申请HTTPS证书

申请IP地址的HTTPS证书是一个相对简单但需要仔细操作的过程。选择合适的CA机构,明确所需证书类型,按照规定步骤提交申请并验证信息,最后正确安装和部署,即可实现通过IP地址访问的安全HTTPS连接。 下面是具体的申请流程&#xff0…

云盘高速视觉检测机,如何提高螺丝件的检测效率?

螺纹螺丝钉是一种常见的螺纹结构紧固件,通常由金属制成,具有螺旋状的螺纹结构。这种螺丝钉旨在通过旋入螺纹孔或材料中,实现可靠的固定连接。 螺纹螺丝钉具有螺旋状的螺纹结构,使其能够轻松旋入金属或其他硬质材料。主要用于金属…

Spring Boot 引入 Guava Retry 实现重试机制

为什么要用重试机制 在如今的系统开发中,为了保证接口调用的稳定性和数据的一致性常常会引入许多第三方的库。就拿缓存和数据库一致性这个问题来说,就有很多的实现方案,如先更新数据库再删除缓存、先更新缓存再更新数据库,又或者…

江苏省发改委副主任钱海云一行莅临我司调研指导

近日,江苏省发改委副主任钱海云、支援合作处副处长卢桐、调研员鲁培和一行,在江宁开发区管委会及市、区发改委有关负责人陪同下,莅临南京天洑软件有限公司走访调研。天洑软件总工程师郭阳博士携管理层参与本次调研活动。 在参观过程中&#x…

【C++】选择结构- 嵌套if语句

嵌套if语句的语法格式&#xff1a; if(条件1) { if(条件1满足后判断是否满足此条件) {条件2满足后执行的操作} else {条件2不满足执行的操作} } 下面是一个实例 #include<iostream> using namespace std;int main4() {/*提示用户输入一个高考分数&#xff0c;根据分…

通过 Function-Call Input Events启用图表中的控制状态

在由function-call input event启用的图表中&#xff0c;可以通过设置启用图表时的状态属性来控制状态的行为。根据此属性的值&#xff0c;当输入事件重新启用图表时&#xff0c;状态要么保持其最新值&#xff0c;要么恢复为初始值。要修改属性&#xff0c;请执行以下操作&…

一文读懂《制造业数字化转型行动方案》

​在推动新型工业化与构建现代化产业体系的宏伟蓝图中&#xff0c;制造业的数字化转型无疑是至关重要的一环。随着国务院常务会议正式批准《制造业数字化转型行动方案》&#xff08;简称《方案》&#xff09;&#xff0c;标志着我国制造业正式迈入了一个全面拥抱数字化、智能化…

C++迈向精通:STL-iterator_traits迭代器类型萃取解析

STL-iterator_traits迭代器类型萃取解析 源码 在阅读STL源码的时候遇到了这样的一行代码&#xff1a; 通过ctags跳转到对应的定义区域&#xff1a; 下面还有两个特化版本&#xff1a; 根据英文释义&#xff0c;发现模板中需要传入的是一个迭代器类型&#xff0c;在上面找到源…

NAND Flash 的 SDR、ONFI、DDR 接口

NAND Flash 的 SDR、ONFI、DDR 接口 1. 省流导图 2. SDR、ONFI、DDR 概述 2.1 SDR (Single Data Rate) SDR&#xff08;Single Data Rate&#xff09;是指读写数据使用 单个时钟信号的边缘&#xff0c;即上升沿或下降沿 。在 SDR 模式下&#xff0c;数据的传输速率受限于时钟…

用友U8 Cloud MeasureQueryFrameAction接口处SQL注入漏洞复现 [附POC]

文章目录 用友U8 Cloud MeasureQueryFrameAction接口处SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现用友U8 Cloud MeasureQueryFrameAction接口处SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿…

【Gin】深度解析:在Gin框架中优化应用程序流程的责任链设计模式(上)

【Gin】深度解析&#xff1a;在Gin框架中优化应用程序流程的责任链设计模式(上) 大家好 我是寸铁&#x1f44a; 【Gin】深度解析&#xff1a;在Gin框架中优化应用程序流程的责任链设计模式(上)✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 本次文章分为上下两部分&#xf…

Jenkins的相关概述和安装

Jenkins 1.什么是jenkins Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。耗内存max 2. 为什么使用Jenkins 拉取、编译、打包…

AI绘画入门实践|Midjourney:使用 --no 去除不想要的物体

在 Midjourney 中&#xff0c;--no 作为反向提示词&#xff0c;告诉 MJ 在生成图像时&#xff0c;不要包含什么。 使用格式&#xff1a;--no 对应物体提示词&#xff08;多个物体之间使用","间隔&#xff09; 使用演示 a web banner, summer holiday --v 6.0 a web b…

变阻器在实际应用中需要注意哪些安全事项?

变阻器是广泛应用于电子设备中的电子元件&#xff0c;它可以改变电阻值以控制电流的大小。然而&#xff0c;在实际应用中&#xff0c;如果操作不当&#xff0c;可能会引发一些安全问题。因此&#xff0c;使用变阻器时&#xff0c;必须注意以下安全事项&#xff1a; 1. 选择合适…

windows wsl ubuntu系统安装桌面可视化

参考&#xff1a; https://www.bilibili.com/read/cv33557374/ 1&#xff09;首先先安装好wsl ubuntu系统 2&#xff09;安装 Ubuntu 桌面版 sudo apt purge -y acpid acpi-support modemmanagersudo apt-mark hold acpid acpi-support modemmanager sudo apt install ubunt…

UE4如何直接调试Game

某些功能在编辑器里不好调试&#xff0c;例如Pak&#xff0c;就需要直接调试 Game&#xff0c;做法是选择 Game&#xff0c;不要选择Client&#xff0c;加断点&#xff0c;然后点击 Debug 就好了。 断点调试成功&#xff1a; 同时看到界面&#xff1a;

中国森林地上和地下生物量碳变化数据集(2002-2021年)

中国森林地上和地下生物量碳变化数据集&#xff08;2002-2021年&#xff09; 数据介绍 为了量化中国近期全国性恢复工作的生态后果&#xff0c;过去20年森林生物量碳储量变化的空间显性信息至关重要。然而&#xff0c;在全国范围内进行长期生物量追踪仍然具有挑战性&#xff0c…

网络安全防御【IPsec VPN搭建】

目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤&#xff1a; 修改双机热备的为主备模式&#xff1a; 2、配置交换机LSW6新增的配置&#xff1a; 3、防火墙&#xff08;FW4&#xff09;做相关的基础配置&#xff1a; 4、搭建IPsec VPN通道 &#xff08;1…

LINUX -exec函数族

1、功能&#xff1a; *让父子进程来执行不相干的操作 *能够替换进程地址空间的代码.text段 *执行另外的程序&#xff0c;不需要创建额外的的地址空间 *当前程序中调用另外一个应用程序 2、执行目录下的程序&#xff1a; *指定执行目录下的程序 int execl(const char *path,…