$ocr
- 更新时间:2025-09-04 17:43:59
文字识别
v(name)
设置要使用的OCR引擎
下面我简单介绍几个识别引擎的特点,ncnn速度最快,但是部分手机会出现识别混乱的现象; mlkit是google提供的OCR引擎,速度较慢,但是识别准确率较高,并且兼容性比ncnn好很多;
- 参数 : name {string} 可选:ncnn(默认),mlkit
- 版本 : 1.2.2
//此函数要放在识别之前调用
$ocr.v("ncnn");//设置要使用的OCR引擎
init()
初始化ocr
仅ncnn需要初始化ocr,至少需要两秒的时间
mlkit无需初始化,调用此函数会直接返回成功
- 返回 : {DetectResult} 结果
- 版本 : 1.0.0
$ocr.init();
getPoint(word, options)
识别文字拿位置
识别后将把每行结果去除空格和换行符后,判断是否包含指定文字,如果包含则返回该文字的位置
- 参数 : word {string} 文字
- 参数 : options {Object} 配置
- 返回 : {Point} 位置
- 版本 : 1.0.0
//配置项请参考其他方法
let options = {
//其他配置项目参考detect方法
};
//返回opencv的Point对象
let point = $ocr.getPoint("文字", options);
if (point != null) {
//直接点击opencv的Point对象
$act.click(point);
}
line(options)
识别单行文字
识别的方式有二值化和灰度化,自行配置即可,识别完成后会对识别的结果进行包装处理, 提取出文字为单行字符串,并且去除不需要的空格和换行符。
- 参数 : options {object} 配置
- 返回 : {Point} 位置
- 版本 : 1.0.0
let options = {
number: true, //是否提取数字(用,号分割)
//其他配置项目参考detect方法
};
detect(options)
识别文字
会自动截屏并且识别文字
- 参数 : options {object} 参数
- 返回 : {DetectResult} 结果
- 版本 : 1.0.0
//灰度化识别
let options = {
region: [0,0,200,100], //识别范围(为空则识别整个屏幕)
gray: true, //开启灰度化
save: true, //是否保存图片
savePath: "/sdcard/ocr.png" //保存图片路径(为空则不保存图片)
};
let result = $ocr.detect(options);
//二值化识别
let options = {
region: [0,0,200,100], //识别范围(为空则识别整个屏幕)
color: "#EEEEEE", //文字颜色(默认:#EEEEEE)
threshold: 20, //二值化阈值(默认:20)
save: true, //是否保存图片
savePath: "/sdcard/ocr.png" //保存图片路径(为空则不保存图片)
};
let result = $ocr.detect(options);
detect64(base64)
识别base64图片
- 参数 : base64 {String} 图片base64字符串
- 返回 : {DetectResult} 结果
- 版本 : 1.0.0
//识别base64图片
let img = $img.read("/sdcard/test.png");
let base64 = $img.toBase64(img);
let result = $ocr.detect64(base64);
detectPath(imgPath)
识别路径中图片
- 参数 : imgPath {String} 图片路径
- 返回 : {DetectResult} 结果
- 版本 : 1.0.0
//识别本地图片
let result = $ocr.detectPath("/sdcard/test.png");
detectImg(img)
识别图片
- 参数 : img {Image} 图片对象
- 返回 : {DetectResult} 结果
- 版本 : 1.0.0
//识别本地图片
let img = $img.read("/sdcard/test.png");
let result = $ocr.detectImg(img);
if (result.isSuccess()) {
//...
}
setDevDensity(devDensity)
设置开发环境屏幕密度
- 参数 : devDensity 开发环境下的屏幕密度
- 版本 : 1.0.0
$ocr.setDevDensity(3.0);//开发环境下密度
setAdapt(usable)
是否启动分辨率适配
- 参数 : usable {boolean} 启用分辨率适配(默认:false)
$ocr.setAdapt(true);//默认:false