前言
- 由于群友的需求,增加
Auto.js
对接版 - 这个完全开源免费的
Umi-OCR
对比过其它开源项目,这个识别速度又快又准,部署也方便 - 唯一不足点就是目前不支持Linux,仅支持Windows
- 如果觉得下载麻烦的可以到QQ群文件下载(群号:
606759894
)
Umi-OCR
项目地址:Umi-OCR
- 免费:本项目所有代码开源,完全免费。
- 方便:解压即用,离线运行,无需网络。
- 高效:自带高效率离线OCR引擎。只要电脑性能足够,可以比在线OCR服务更快。
- 灵活:支持命令行、HTTP接口等多种调用方式。
- 功能:截图OCR / 批量OCR / 二维码 / 数学公式识别(测试中)
OCR识别效果
本地端部署
也不需要啥部署的,就安装后设置下就可以了
- 下载exe文件并安装,打开
- 全局设置->高级->服务
- 允许HTTP服务->打勾
- 主机->任何可用地址
- 端口->可默认也可自定义
- 退出重启即可(注:要后台完全退出,而不是简单的点击X)
- 打开cmd终端->ipconfig->查看ipv4地址
AutoJs对接源码
源码里的
192.168.1.11
替换成上面的ipv4地址
,如果端口有修改的话也要把1224
替换成自己的端口,然后直接运行就就可以了,默认识别的是当前屏幕截图~
同时支持:Auto.js
,Autox.js v6
,Auto.js Pro
if (!requestScreenCapture()) {
alert("请求截图失败");
exit();
}
//需要加个延迟,不然会截到请求权限的弹窗
sleep(2000)
// 设置图片路径
var path = "/sdcard/待识别图片.jpg";
// 截图保存
var 截图保存 = captureScreen(path);
if (!截图保存) {
console.error("截图保存失败,请检查是否有权限");
exit();
}
// OCR 接口链接
var url = "http://192.168.1.11:1224/api/ocr";
// 获取图片的 Base64 编码
var b64 = images.toBase64(images.read(path));
// 发送 HTTP POST 请求
var response = http.postJson(url, {
"base64": b64
});
var res = response.body.json();
// 打印响应结果
console.log(res)
// 处理响应
if (res.code == 100) {
console.log("成功识别到文字!");
for (var i = 0; i < res.data.length; i++) {
var 坐标数组 = res.data[i].box;
var 左上 = 坐标数组[0];
var 右下 = 坐标数组[2];
console.log("文字:", res.data[i].text, ",范围为:", 左上[0], 左上[1], 右下[0], 右下[1]);
}
} else if (res.code == 300) {
console.log("base64解码失败!");
} else if (res.code == 101) {
console.log("并没有识别到文字!");
} else {
console.log("识别失败,请检查res报错");
}
http更多参数设置详见:README_HTTP.md
注意点
- 由于是本地端部署,你的电脑就相当于扮演服务器的角色,因此只能在局域网内使用,也就是说连接同一个WiFi的才能使用这个接口
- 如果要解除这个限制,两种方式:
①买个Windows服务器,最简单的方式,但是费钱,下面是一期部署教程观看高清视频:【将完全免费开源的ocr文字识别部署到自己的服务器上】
②内网穿透,由于粉丝要求,特意出的一期内网穿透:将内网发布至公网,Windows|Linux之cpolar内网穿透
我有一个扫描仪,我想能不能在文件扫描完成后自动ocr。