首页 > 其他分享 >【全网唯一】aardio纯本地离线文字识别插件

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

时间:2024-07-03 09:56:18浏览次数:16  
标签:插件 ch 检测 aardio 离线 文本 识别 type tmo

目的

        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:

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

标签:插件,ch,检测,aardio,离线,文本,识别,type,tmo
From: https://blog.csdn.net/YY007H/article/details/140138400

相关文章

  • LLM大模型: RAG的最优chunk方法 — 利用本地离线LLM的embedding实现Semantic Chunking
     1、RAG整个流程的核心节点如下:第一个重要的节点就是chunk。chunk最核心的目的就是把相同语义的token聚集在一起,不同语义的token互相分开,利于后续的retrieve和rerank。举个例子:今天天气很好,我和小明在一起打篮球。隔壁老王在家里看电视。小明的妈妈在家里做晚饭,晚上我......
  • 从零开始带你上手体验Sermant自定义插件开发
    本文分享自华为云社区《Sermant自定义插件开发上手体验》,作者:华为云开源。一、研究缘由由于目前我们所处的行业是汽车行业,项目上进行云服务的迁移时使用到了Sermant中的相关插件,为了加深对Sermant开发和运行机制的了解,我们从零开始体验Sermant自定义插件的开发。下面我们就Se......
  • ubuntu中gstreamer缺少rtspserversink插件怎么安装这个插件?
    在Ubuntu中,如果GStreamer缺少rtspserversink插件,这通常意味着gst-rtsp-server模块没有正确安装或配置。rtspserversink是gst-rtsp-server库的一部分,它用于构建RTSP服务器,支持媒体流的发送。以下是详细的安装步骤,这些步骤将帮助你安装gst-rtsp-server及其相关插件:首先,你需要安......
  • Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换
    一、前言说明这个地图组件写了很多年了,最初设计的比较粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出的改进意见,逐渐萌生了彻底重新编写对应地图相关的代码,比如基类子类的设计,各种功能......
  • 数据分表——使用 Mybatis-Plus插件实现动态表名分表(按年份分表、按月份分表)
    本博客适合Mybatis-Plus3.4以上版本,笔者使用版本为3.5.3。分库与分表的原因1.业务场景:日志、交易流水表或者其他数据量大的表,通过日期进行了水平分表,需要通过日期参数,动态的查询数据。实现思路:利用MybatisPlus的动态表名插件DynamicTableNameInnerInterceptor,实现Sql执行......
  • docker离线安装及私人仓库搭建
    docker离线安装及私人仓库搭建注意文中IPPORT根据实际情况自行调整1.离线部署安装目录结构install#安装文件夹docker-19.03.9.tgz#docker安装文件压缩包docker下载地址docker-compose-linux-x86_64#docker-compose文件docker-compose下载地址daemon.json......
  • Eplan插件 - 矩形修订云线
    前言在CAD中,矩形云线一直是设计师们用于标注修订区域或突出重要部分的得力工具。然而,在Eplan中,没有直接绘制矩形云线的功能。为了填补这一空白,开发了专门用于Eplan的矩形修订云线插件。这款插件保留了Eplan绘制的习惯,可以简洁快速的框选出需要修订或者重点关注的区域,使整个......
  • 磁盘阵列两块硬盘离线数据恢复
    故障服务器环境:一台Dell的故障服务器,共有6块SCSI的320GB硬盘组建了raid5磁盘阵列。操作系统linuxRedhat4。故障服务器检测分析:使用过程中服务器瘫痪,对阵列检查后发现有两块硬盘离线,对其中一块硬盘进行了强制上线操作,但操作系统启动异常。故障服务器数据恢复流程:1.对服务器......
  • Temu有哪些选品技巧和方法?Temu选品助手插件
    对于电商来说,选品至关重要,正所谓“三分靠产品,七分靠选品”。好的选品就是那些具有市场竞争力的优质产品,能提升消费者的购物体验,也能帮助卖家实现销售增长和利润提升。今天小编来整理一下有关Temu平台的选品技巧和方法,觉得有用就点赞收藏哦!Temu有哪些选品技巧和方法?1、行业......
  • 关于 VuePress 的插件
    07.插件插件就好比第三方功能,例如增加一个阅读进度条、增加光标效果等。VuePress官网对插件的介绍:插件通常会为VuePress添加全局功能。这里简单介绍几个本站用的插件吧!‍‍插件就好比第三方功能,例如增加一个阅读进度条、增加光标效果等,VuePress官网对插件的介绍:插件通常......