跳到主要内容

初始化函数

提示
  • 初始化的意思是只需要脚本开头执行一次,非必要不要重复执行

环境

init 初始化EC节点服务

参数名必选类型说明
//放到脚本开头调用一次即可,EC必需使用函数
laoleng.EC.init()
参数名类型说明

日志

initLogAndConfig 初始化日志和配置

提示
  • 初始化日志和h5 ui配置,自动解析ui模版的参数内容,将ui中id解析为对象
  • 必须在脚本开头定义个全局变量jsonCfg来接收解析结果
参数名必选类型说明
noLogboolean不需要本地日志
//脚本开头定义个全局变量jsonCfg来接收解析结果
let jsonCfg = {}
//放到脚本开头调用一次即可,EC找图找色必需使用函数
laoleng.EC.initLogAndConfig()
//如果不需要写入本地日志
laoleng.EC.initLogAndConfig(true)
//可以直接打印ui中定义的变量aaa
logd(jsonCfg.aaa)
返回值类型说明

deleteCrashLogs 清空ec的崩溃日志,防止过大

参数名必选类型说明
//放脚本开头执行一次,或者当你想执行的时候
laoleng.EC.deleteCrashLogs()
返回值类型说明

图色

initImage 初始化EC图色服务

参数名必选类型说明
initOpenCVboolean是否初始化opencv,默认开启
timeoutint找图找色超时
//放到脚本开头调用一次即可,EC找图找色必需使用函数
laoleng.EC.initImage()
//不需要找图功能
laoleng.EC.initImage(false)
//设置找图和超时,秒
laoleng.EC.initImage(true,2)
//设置不找图和超时,秒
laoleng.EC.initImage(false,2)
参数名类型说明

checkCaptureAvailable 检查各个截图功能是否正常

参数名必选类型说明
isSave是否保存到本地自动保存图片到sd卡下,命名规则,数字_截图命令名称.png /sdcard/1_captureScreen.png
//测试截图是否黑屏/白屏
laoleng.EC.checkCaptureAvailable()
//测试并截图到本地,命名规则,数字_截图命令名称.png
laoleng.EC.checkCaptureAvailable(true)

返回值类型说明

OCR

initOcr 初始化ocrLite

参数名必选类型说明
numThreadnumber线程数,默认1,可以根据手机cpu核心数调整
paddingnumber图片边缘拓展,小图加大此项
needBinaryboolean是否使用二值化,默认true
//放在脚本开头初始化一次

//常规用法,默认1个线程,padding 10px,开启二值化功能
laoleng.EC.initOcr()

//2个线程,pading 20px, 不启用二值化功能
laoleng.EC.initOcr(2, 20, false)

//不启用二值化功能
//二值化功能有时候会提升识别速度
laoleng.EC.initOcr(null, null, false)
返回值类型说明

ocrConfig.setConfig ocrLite模式切换ocr的配置

参数名必选类型说明
extraObject默认{"maxSideLen": 1024} 其他参数参考http://doc.laoleng.vip/web/#/9?page_id=2409
timeOutnumber超时时间,可空,默认10*1000ms
modenumber二值化模式,默认1
thresholdnumber二值化阈值 默认100
//用于需要修改ocr一些默认参数用
//其他参数参考http://doc.laoleng.vip/web/#/9?page_id=2409
laoleng.ocrConfig.setConfig({"maxSideLen": 1024}, 20*1000, 1, 150)
返回值类型说明
每个参数有一个短参数名和一个长参数名,用短的或长的均可
-d或--models:模型所在文件夹路径,可以相对路径也可以绝对路径
-1--det:dbNet模型文件名(含扩展名)
-2--cls:angleNet模型文件名(含扩展名)
-3--rec:crnnNet模型文件名(含扩展名)
-4--keys:keys.txt文件名(含扩展名)
-i或--image:目标图片路径,可以相对路径也可以绝对路径
-t或--numThread:线程数量
-p或--padding:图像预处理,在图片外周添加白边,用于提升识别率,文字框没有正确框住所有文字时,增加此值
-s或--maxSideLen :按图片最长边的长度,此值为0代表不缩放,例:1024,如果图片长边大于1024则把图像整体缩小到1024再进行图像分割计算,如果图片长边小于1024则不缩放,如果图片长边小于32,则缩放到32
-b或--boxScoreThresh:文字框置信度门限,文字框没有正确框住所有文字时,减小此值
-o或--boxThresh:请自行试验
-u或--unClipRatio:单个文字框大小倍率,越大时单个文字框越大此项与图片的大小相关,越大的图片此值应该越大
-a或--doAngle:启用(1)/禁用(0) 文字方向检测,只有图片倒置的情况下(旋转90~270度的图片),才需要启用文字方向检测
-A--mostAngle:启用(1)/禁用(0) 角度投票(整张图片以最大可能文字方向来识别),当禁用文字方向检测时,此项也不起作用
-h或--help:打印命令行帮助
更详细内容参考github
https://github.com/DayBreak-u/chineseocr_lite/tree/onnx/cpp_projects/OcrLiteOnnx

initOcrMlkit 初始化Mlkit OCR

参数名必选类型说明
rotatenumber旋转角度,默认0
//放在脚本开头初始化一次

//常规用法
laoleng.EC.initOcrMlkit()

//向左旋转90度
laoleng.EC.initOcrMlkit(90)

返回值类型说明

initOcrPaddleOcrOnline 初始化rPaddleOcrOnline参数

参数名必选类型说明
serverUrlstringOCR服务器IP
extraParamObject其他参数

//放脚本开头执行一次

//使用默认参数
laoleng.EC.initOcrPaddleOcrOnline("192.168.1.1")

//自定义识别参数,参考官方文档
//如果自定义,除服务器url外要写全必要参数
//extraParam默认参数{
let extraParam = {
"type": "paddleOcrOnline",
"ocrType": "ONNX_PPOCR_V3",
"padding": 50,
"maxSideLen": 0,
"boxScoreThresh": 0.5,
"boxThresh": 0.3,
"unClipRatio": 1.6,
"doAngleFlag": 0,
"mostAngleFlag": 0,
}
laoleng.EC.initOcrPaddleOcrOnline("192.168.1.1", extraParam)

参数类型解释
https://ieasyclick.com/docs/zh-cn/funcs/ocr-api#ocrinitocr-%E5%88%9D%E5%A7%8B%E5%8C%96

* - ocrType : 模型 ONNX_PPOCR_V3,ONNX_PPOCR_V4,NCNN_PPOCR_V3
* - serverUrl:paddle ocr服务器地址,可以在其他电脑部署,然后中控链接,例如 192.168.2.8,部署在电脑就改ip地址即可,端口是 9022 可以不写
* - padding 图像外接白框,用于提升识别率,文字框没有正确框住所有文字时,增加此值默认50<br/>
* - maxSideLen 按图像长边进行总体缩放,放大增加识别耗时但精度更高,缩小减小耗时但精度降低,maxSideLen为0表示不缩放<br/>
* - boxScoreThresh 文字框置信度门限,文字框没有正确框住所有文字时,减小此值 <br/>
* - boxThresh 同上,自行试验<br/>
* - unClipRatio 单个文字框大小倍率,越大时单个文字框越大<br/>
* - doAngleFlag 启用(1)/禁用(0) 文字方向检测,只有图片倒置的情况下(旋转90~270度的图片),才需要启用文字方向检测,默认关闭<br/>
* - mostAngleFlag 启用(1)/禁用(0) 角度投票(整张图片以最大可能文字方向来识别),当禁用文字方向检测时,此项也不起作用,默认关闭<br/>
* - limit 代表每1秒执行ocr请求个数 默认1000可以适当降低减少cpu占用<br/>
* - checkImage 检查数据是否是图像(10)默认关闭<br/>
返回值类型说明

伪多分辨率

initScale 初始化开发分辨率

参数名必选类型说明
initXnumber开发设备的宽值
initYnumber开发设备的高值
laoleng.EC.initScale(720,1280)
返回值类型说明

scale 获取计算后的分辨率

参数名必选类型说明
xintx坐标
yinty坐标
//当前设备为540x960
laoleng.EC.initScale(720,1280)
let ret = laoleng.EC.scale(100,200);
//{"x":75,"y":150}
logd(ret.x,ret.y)
//75 150
返回值类型说明
{"x":75,"y":150}object返回结果