AHK 实现文字识别(OCR)—— 离线与在线2种方法总结。

实现文字识别后,可以与各种你喜欢的方式结合,例如鼠标手势、热键等等,效果如图。


1. 离线OCR。

使用 iseahound 的库 vis2 (原理是谷歌的开源项目 tesseract )。

优点是可以离线识别,英文识别效果还凑合。缺点是中文效果不咋滴。

完整打包一键运行版在文末下载。

简单示例如下。

#include <Vis2>       ; Equivalent to #include .libVis2.ahk

Tip=
(
识别中…… 耗时会很久,耐心等待。

原版的预处理已经被关掉了,因为对中文识别完全是负加成。

升级 tesseract 版本并不能提升识别效果。
改变 tesseract 参数也许可以提升识别效果。
官方文档说预处理图片可以提升识别效果,实测不明显。
打包了一个 PictureCleaner 用来手动预处理图片,慢慢试。

截图方式识别时使用的是快速模型,准确率较低。
提供图片路径时使用的是最佳模型,准确率更好。
)

Vis2.Graphics.Subtitle.Render(Tip, "t15000 xCenter y60% p1.35% c88EAB6 r8", "s2.23% cBlack")
Vis2.Graphics.Subtitle.Render("按 [Win] + [c] 可以截图识别。", "time: 30000 xCenter y92% p1.35% cFFB1AC r8", "c000000 s2.23%")
MsgBox % text := OCR("中文测试.png","chi_sim")
MsgBox % text := OCR("中文测试经过预处理.png","chi_sim")

#c:: OCR(,"chi_sim")  ; 截图 OCR
#i:: ImageIdentify()  ; 图片鉴别,也就是分辨图里是鱼还是橘子等
Esc:: ExitApp

2. 在线OCR。

使用 天黑请闭眼 的库 Class_bdocr (原理是百度的OCR接口)。

优点是识别效果挺好的,全方位的碾压离线效果。缺点是需要联网,同时需要开通百度OCR权限。

完整打包一键运行版在文末下载。

简单示例如下。

API_KEY:="这里填自己的"
SECRET_KEY:="这里填自己的"

if (API_KEY="这里填自己的")
{
	MsgBox 0x40010, , 照着教程先去 https://cloud.baidu.com/ 申请账号。
	MsgBox 0x40010, , 需要库 Class_bdocr.ahk 和 JSON.ahk`n群文件或网上去搜。
	ExitApp
}

ocr:=new bdocr(API_KEY, SECRET_KEY)
ret:=ocr.GetOcr(A_ScriptDir "1.png","accurate_basic")	; 高精度识别
; ret:=ocr.GetOcr(pBitmap,"general_basic")							; 普通精度识别
for k,v in JSON.Load(ret).words_result
	str.=v.words "`r`n"
MsgBox, % str

#Include Class_bdocr.ahk
#Include JSON.ahk

2.1 如何开通百度OCR权限。

1. https://cloud.baidu.com/ 首先在这里注册一个账号。

2. 照着下图一步一步做。

3. 代码中填入上一步得到的 API_KEY 和 SECRET_KEY 。


3. 现成的截屏带OCR工具。

使用 天黑请闭眼 的 截屏+百度OCR.ahk 。

在设置中填入自己的 API_KEY 和 SECRET_KEY ,然后按 F4 截屏。

完整打包一键运行版在文末下载。


下载地址:

为TA充电
共{{data.count}}人
人已赞赏
其他

如何保存电子文件

2021-4-2 10:27:34

其他

RunWith —— 强制以管理员权限、普通权限、ANSI、U32、U64 运行自身。

2021-4-8 16:45:46

10 条回复 A文章作者 M管理员
  1. 1河许人

    😁

  2. LionAHK1

    牛牛牛.

  3. sanmaodo

    @空 的帖子,都是精品💪,感谢!

  4. 月下马

    下载地址找不到服务器😂

    • 空

      已修复。最近蓝奏云好像域名出了问题,官方发布的通告是,只要把lanzous改为lanzoux就可以正常访问。

  5. maxs

    貌似qq截图更好用啊

    • 空

      你要是有非手动调用qq截图并识别文字的方法,我也可以加在文章里面。

  6. 爆发吧黄月英

    这个东西每次使用都要登录好百度的帐号么?

    • 空

      不需要,取得对应的key填入就可以了。

  7. dbgba

    赞,在线OCR还是得留一份

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索