【全网唯一】aardio纯本地离线文字识别插件

目的

        aardio是一种用于Windows平台的脚本编程语言,以及一个功能丰富的集成开发环境(IDE)。它结合了强大的原生Windows API访问能力和简单易学的语法。它属于易用性极强的动态语言,但也是一种混合语言,可以罕见地、非常方便地操作静态类型,因此可以直接调用 C语言、C++ 等等静态语言的 API 接口函数。但针对于该平台的文字识别插件几乎没有,本篇文章主要讲解下TomatoOCR纯本地离线文字识别插件如何使用和集成。

准备工作

1、下载aardio开发工具:aardio 官方网站

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

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

1、新建项目,并将TomatoOCR.dll文件放到资源目录下:

2、双击main.aardio,打开代码,将下面的代码拷贝进去

注意:import console 必须加


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


import win.ui;
/*DSG{{*/
mainForm = win.form(text="tmo";right=757;bottom=467;)
mainForm.add()
/*}}*/

import console

// 加载插件
var tmo = raw.loadDll($"\res\TomatoOCR.dll");

// 初始化
init = tmo.api("init", "int()", "cdecl");
init()


//setRecType = tmo.api("setRecType", "void(s)", "cdecl");
//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 = tmo.api("setDetBoxType", "void(s)", "cdecl");
setDetBoxType("rect");
// 调整检测模型检测文本参数- 默认"rect": 由于手机上截图文本均为矩形文本,从该版本之后均改为rect,"quad":可准确检测倾斜文本

setDetUnclipRatio = tmo.api("setDetUnclipRatio", "void(float)", "cdecl");
setDetUnclipRatio(1.9);
// 调整检测模型检测文本参数 - 默认1.9: 值范围1.6-2.5之间

setRecScoreThreshold = tmo.api("setRecScoreThreshold", "void(float)", "cdecl");
setRecScoreThreshold(0.1);
// 识别得分过滤 - 默认0.1,值范围0.1-0.9之间

setReturnType = tmo.api("setReturnType", "void(s)", "cdecl");
setReturnType("json");
// 返回类型 - 默认"json": 包含得分、坐标和文字;
// "text":纯文字;
// "num":纯数字;
// 自定义输入想要返回的文本:".¥1234567890",仅只返回这些内容

setBinaryThresh = tmo.api("setBinaryThresh", "void(int)", "cdecl");
setBinaryThresh(100);
// 二值化设定,非必须


_type = 3
// type=-1 : 检测 + 方向分类 + 识别
// type=0 : 只检测
// type=1 : 方向分类 + 识别
// type=2 : 只识别
// type=3 : 检测 + 识别
// 只检测文字位置:type=0
// 全屏识别: type=3或者不传type
// 截取单行文字识别:type=1或者type=2
ocrFile = tmo.api("ocrFile", "s(s,int)", "cdecl")
console.log(ocrFile("C:\\Users\\tmo\\Downloads\\001.jpg", _type));

// 找字
findTapPoint = tmo.api("findTapPoint", "s(s)", "cdecl");
//console.log(findTapPoint("子"))


mainForm.show();
return win.loopMessage();

其中方法说明:

方法名说明
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]

3、运行结果

完毕

        相对来说,在aardio进行插件适配还是比较方便的,而且整个识别下来,占用内存也非常的小,仅仅300多M:

有需要的可以在评论区留言。

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值